import datetime import time from rating.db import find_tyc_db, find_tfse_db, conserve_data from rating.province_map import p_map def get_tfse_data(param): """ 获取数据库数据 Parameters: param: 企业名称、企业ID、评价ID Returns: report_data: 数据库数据 """ company = param['company'] rid = param['rid'] cid = param['cid'] report_data = dict() # 评价结果 es = find_tfse_db(db='评价', col='评价结果', query={'评价ID': rid})[0] # 综合评价填报 cef = find_tfse_db(db='评价', col='综合评价填报', query={'评价ID': rid})[0] # 指标明细 fid = find_tfse_db(db='企业', col='指标明细', query={'企业名称': company}) # 基本信息 cbd = find_tyc_db(db='公司背景', col='基本信息', query={'企业名称': company})[0] # 企业股东 cs = find_tyc_db(db='公司背景', col='企业股东', query={'企业名称': '四川麦克福瑞制药有限公司'})[0] # 对外投资 oi = find_tyc_db(db='公司背景', col='对外投资', query={'企业名称': company})[0] # 进出口信用 ip = find_tyc_db(db='经营状况', col='进出口信用', query={'企业名称': company})[0] # 专利 ip_02 = find_tyc_db(db='知识产权', col='专利', query={'企业名称': company})[0] # 软件著作权 sc = find_tyc_db(db='知识产权', col='软件著作权', query={'企业名称': company})[0] # 资质证书 qh = find_tyc_db(db='经营状况', col='资质证书', query={'企业名称': '四川麦克福瑞制药有限公司'})[0] # 融资历史 fh = find_tyc_db(db='公司发展', col='融资历史', query={'企业名称': company})[0] # 风险数据 rd = find_tfse_db(db='评价', col='风险数据', query={'企业ID': cid})[0] # 周边风险 pr = find_tyc_db(db='天眼风险', col='周边风险', query={'企业名称': company})[0] report_data['评价结果'] = es report_data['综合评价填报'] = cef report_data['指标明细'] = fid report_data['基本信息'] = cbd report_data['企业股东'] = cs report_data['对外投资'] = oi report_data['进出口信用'] = ip report_data['专利'] = ip_02 report_data['软件著作权'] = sc report_data['资质证书'] = qh report_data['融资历史'] = fh report_data['风险数据'] = rd report_data['周边风险'] = pr return report_data def evaluation_results(param): """ 评价结果 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: credit_rank: 信用等级 rank_date: 评价时间 """ data = param['评价结果'] result = list() part_01 = dict() part_02 = dict() part_01['credit_rank'] = data['信用等级'] part_02['rank_date'] = data['评价时间'] result.append(part_01) result.append(part_02) return result def financial_data(param): """ 主要财务数据 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 三年主要财务数据 """ data_01 = param['综合评价填报']['财务填报'] data_02 = param['指标明细'] result = list() for key, value in data_01['资产负债表'][0].items(): insert_list = list() insert_list.append(key) insert_list.append(str(value)) insert_list.append(str(data_01['资产负债表'][1][key])) insert_list.append(str(data_01['资产负债表'][2][key])) result.append(insert_list) for key, value in data_01['利润表'][0].items(): if key != '报告期': insert_list = list() insert_list.append(key) insert_list.append(str(value)) insert_list.append(str(data_01['利润表'][1][key])) insert_list.append(str(data_01['利润表'][2][key])) result.append(insert_list) for k, v in data_02[0].items(): if k != '企业名称' and k != '年报期' and k != '企业ID': try: insert_list = list() insert_list.append(k) insert_list.append(str(v)) insert_list.append(str(data_02[1][k])) insert_list.append(str(data_02[2][k])) result.append(insert_list) except IndexError: insert_list = list() insert_list.append(k) insert_list.append(str(v)) insert_list.append(str(data_02[1][k])) insert_list.append('-') result.append(insert_list) return result def evaluation_view(param1, param2): """ 评价观点 清洗数据库数据,根据需要返回 Parameters: param1: 企业名称 param2: 数据库数据 Returns: 评价观点数据 """ data_01 = param2['基本信息']['基本信息'] data_02 = param2['综合评价填报']['财务填报'] data_03 = param2['评价结果'] result = list() part_01 = dict() part_01['company'] = param1 part_01['province'] = data_01['regLocation'][:2] income = float(data_02['利润表'][0]['营业收入']) # 企业规模 if income > 400000000: part_01['scale'] = '大型' elif income > 20000000: part_01['scale'] = '中型' elif income > 3000000: part_01['scale'] = '小型' else: part_01['scale'] = '微型' # 优势领域 if float(data_02['资产负债表'][0]['资产总计']) > 400000000: part_01['advantage_area'] = '资产规模' elif float(data_02['补充数据表'][0]['研发费用']) / float(data_02['利润表'][0]['营业收入'] * 100) > 10: part_01['advantage_area'] = '研发实力' elif float(data_02['资产负债表'][0]['短期借款']) != 0 or float(data_02['资产负债表'][0]['一年内到期非流动负债']) != 0 or float( data_02['资产负债表'][0]['长期借款']) != 0: part_01['advantage_area'] = '融资渠道 ' else: part_01['advantage_area'] = '产业政策' part_02 = dict() # esg相关描述 esg_score = float(data_03['经营评分']['合计']) esg_desc_01 = '公司经营符合ESG理念,为环境友好型企业,承担相应社会责任,公司治理较好,为企业运营奠定良好基础。' esg_desc_02 = '公司正努力践行ESG理念,实行节能减排措施,积极履行社会责任,改善公司治理状况,公司ESG的提升有望为企业创造更多价值。' esg_desc_03 = '公司ESG理念较为薄弱,在经营过程中需增加节能减排措施,加大对供应链、社会公众、员工和地区等的责任,树立良好企业形象,进一步加强公司治理和内部控制,促进经营效率提升和企业价值创造。' if esg_score >= 24: part_02['esg_desc'] = esg_desc_01 elif esg_score >= 18: part_02['esg_desc'] = esg_desc_02 else: part_02['esg_desc'] = esg_desc_03 part_03 = dict() # 盈利能力 profitability_score = float(data_03['财务评分']['盈利能力']['净资产收益率']) + float(data_03['财务评分']['盈利能力']['总资产报酬率']) if profitability_score >= 16: part_03['profitability'] = '好' elif profitability_score >= 16 * 0.8: part_03['profitability'] = '较好' elif profitability_score >= 16 * 0.6: part_03['profitability'] = '处于行业平均水平' elif profitability_score >= 16 * 0.4: part_03['profitability'] = '较差' else: part_03['profitability'] = '差' # 资产运营效率 operation_score = float(data_03['财务评分']['资产质量']['总资产周转率']) + float(data_03['财务评分']['资产质量']['应收账款周转率']) + float( data_03['财务评分']['资产质量']['存货周转率']) if operation_score >= 18: part_03['operational_efficiency'] = '高' elif operation_score >= 18 * 0.8: part_03['operational_efficiency'] = '较高' elif operation_score >= 18 * 0.6: part_03['operational_efficiency'] = '尚可' elif operation_score >= 18 * 0.4: part_03['operational_efficiency'] = '较低' else: part_03['operational_efficiency'] = '低' # 债务风险得分 debt_risk_score = float(data_03['财务评分']['债务风险']['资产负债率']) + float(data_03['财务评分']['债务风险']['已获利息倍数']) + float( data_03['财务评分']['债务风险']['速动比率']) if debt_risk_score >= 18: part_03['debt_risk'] = '大' elif debt_risk_score >= 18 * 0.8: part_03['debt_risk'] = '较大' elif debt_risk_score >= 18 * 0.6: part_03['debt_risk'] = '适中' elif debt_risk_score >= 18 * 0.4: part_03['debt_risk'] = '较小' else: part_03['debt_risk'] = '小' # 经营增长状况得分 growth_ability_score = float(data_03['财务评分']['经营增长']['营业增长率']) + float(data_03['财务评分']['经营增长']['总资产增长率']) + float( data_03['财务评分']['经营增长']['技术投入比率']) if growth_ability_score >= 18: part_03['growth_ability'] = '强' elif growth_ability_score >= 18 * 0.8: part_03['growth_ability'] = '较强' elif growth_ability_score >= 18 * 0.6: part_03['growth_ability'] = '一般' elif growth_ability_score >= 18 * 0.4: part_03['growth_ability'] = '较弱' else: part_03['growth_ability'] = '弱' overall_credit_score = float(data_03['财务评分']['合计']) if overall_credit_score >= 100: part_03['overall_credit_risk'] = '很小' elif overall_credit_score >= 100 * 0.8: part_03['overall_credit_risk'] = '小' elif overall_credit_score >= 100 * 0.6: part_03['overall_credit_risk'] = '可控' elif overall_credit_score >= 100 * 0.4: part_03['overall_credit_risk'] = '较大' else: part_03['overall_credit_risk'] = '大' part_04 = dict() part_04['company'] = param1 part_04['credit_rank'] = data_03['信用等级'] result.append(part_01) result.append(part_02) result.append(part_03) result.append(part_04) return result def attention(param): weight = dict() weight['净资产收益率'] = 8 weight['总资产报酬率'] = 8 weight['总资产周转率'] = 6 weight['应收账款周转率'] = 6 weight['存货周转率'] = 6 weight['资产负债率'] = 8 weight['已获利息倍数'] = 5 weight['速动比率'] = 5 weight['营业增长率'] = 8 weight['总资产增长率'] = 5 weight['技术投入比率'] = 5 data = param['评价结果']['财务评分'] del param['评价结果']['财务评分']['合计'] for k, v in data.items(): for k_1, v_1 in v.items(): if k_1 != '合计': weight[k_1] = round(v_1 / weight[k_1], 2) res = sorted(weight.items(), key=lambda x: x[1]) result = list() part_01 = dict() part_02 = dict() part_03 = dict() part_01['attention_01'] = res[0][0] part_02['attention_02'] = res[1][0] part_03['attention_03'] = res[2][0] result.append(part_01) result.append(part_02) result.append(part_03) return result def company_background(param1, param2): """ 公司背景 清洗数据库数据,根据需要返回 Parameters: param1: 企业名称 param2: 数据库数据 Returns: 公司背景数据 """ data_01 = param2['基本信息']['基本信息'] data_02 = param2['企业股东']['企业股东'] data_03 = param2['综合评价填报']['财务填报'] result = list() part_01 = dict() part_02 = dict() # 段落1 part_01['company'] = param1 # 年限 part_01['year_03'] = data_03['资产负债表'][0]['报告期'][:4] # 成立时间 part_01['found_date'] = time_stamp(data_01['estiblishTime']) # 注册资本 part_01['register_assets'] = data_01['regCapital'] # 实收资本 part_01['paid_assets'] = data_01['actualCapital'] # 股份持有人 part_01['share_holders'] = data_02['result'][0]['name'] # 股份 part_01['share_rates'] = data_02['result'][0]['capital'][0]['percent'] # 实际控制人 part_01['real_boss'] = part_01['share_holders'] # 经营范围 part_01['business_scope'] = data_01['businessScope'] # 段落2 # 年限 part_02['year_03'] = data_03['资产负债表'][0]['报告期'][:4] total_assets_01 = data_03['资产负债表'][0]['资产总计'] total_assets_02 = data_03['资产负债表'][1]['资产总计'] # 公司总资产 part_02['total_assets'] = str(total_assets_01) # 总资产同比增长 part_02['year_03_total_assets_variety'] = str(calculate_growth_rate(total_assets_01, total_assets_02)) net_assets_01 = data_03['资产负债表'][0]['所有者权益合计'] net_assets_02 = data_03['资产负债表'][1]['所有者权益合计'] # 净资产(所有者权益) part_02['net_assets'] = str(net_assets_01) # 净资产同比增长 part_02['year_03_net_assets_variety'] = str(calculate_growth_rate(net_assets_01, net_assets_02)) income_01 = data_03['利润表'][0]['营业收入'] income_02 = data_03['利润表'][1]['营业收入'] # 营业收入 part_02['income'] = str(income_01) # 营业收入同比增长 part_02['year_03_income_variety'] = str(calculate_growth_rate(income_01, income_02)) profit_01 = data_03['利润表'][0]['净利润'] profit_02 = data_03['利润表'][1]['净利润'] # 净利润 part_02['profit'] = str(profit_01) # 净利润同比增长 part_02['year_03_profit_variety'] = str(calculate_growth_rate(profit_01, profit_02)) result.append(part_01) result.append(part_02) return result def calculate_growth_rate(param1, param2): """ 计算增长率 传入两年财务数据字典项,算出年增长率 Parameters: param1: 财务指标1 param2: 财务指标2 Returns: 增长率 """ param1 = float(param1) param2 = float(param2) rate = round((param1 - param2) / param2, 2) return rate def shareholder_strength_data(param): """ 股东数据 清洗数据库数据,根据需要返回 Parameters: param: 企业名称 Returns: 股东数据 """ data = dict() # 基本信息 cbd = find_tyc_db(db='公司背景', col='基本信息', query={'企业名称': param})[0] # 企业股东 cs = find_tyc_db(db='公司背景', col='企业股东', query={'企业名称': param})[0] data['基本信息'] = cbd data['企业股东'] = cs return data def person_subsidiaries(param): """ 人员控股数据 清洗数据库数据,根据需要返回 Parameters: param: 人员id Returns: 人员控股数据 """ data = dict() # 控股数据 ps = find_tyc_db(db='公司背景', col='人员控股企业', query={'人员ID': param})[0] data['人员控股企业'] = ps return data def shareholder_strength(param): """ 股东实力 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 股东实力数据 """ data_01 = param['企业股东']['企业股东'] result = list() part_01 = dict() part_02 = dict() if data_01['result'][0]['type'] == 1: shareholder = data_01['result'][0]['name'] # 大股东名称 part_01['company'] = shareholder # 股东-基本信息 data_02 = shareholder_strength_data(shareholder)['基本信息']['基本信息'] # 股东-企业股东 data_03 = shareholder_strength_data(shareholder)['企业股东']['企业股东'] part_01['found_date'] = time_stamp(data_02['estiblishTime']) part_01['registered_capital'] = data_02['regCapital'] part_01['registered_capital'] = data_02['actualCapital'] part_01['share_holders'] = data_03['result'][0]['name'] part_01['share_rates'] = data_03['result'][0]['capital'][0]['percent'] part_01['business_scope'] = data_02['businessScope'] esatablish = datetime.datetime.today().year - int(part_01['found_date'][:4]) if esatablish >= 5: part_02['establish_time'] = '较长' else: part_02['establish_time'] = '较短' regcapital = float(data_02['regCapital'].replace('万人民币', '')) if regcapital >= 30000: part_02['capital_strength'] = '强' part_02['support_strength'] = '有望在业务和资金方面给予公司一定支持' elif regcapital >= 10000: part_02['capital_strength'] = '较强' part_02['support_strength'] = '有望在业务和资金方面给予公司一定支持' elif regcapital >= 3000: part_02['capital_strength'] = '尚可' part_02['support_strength'] = '对公司的支持力度或较弱' elif regcapital >= 1000: part_02['capital_strength'] = '较弱' part_02['support_strength'] = '对公司的支持力度或较弱' else: part_02['capital_strength'] = '弱' part_02['support_strength'] = '对公司的支持力度或较弱' result.append(part_01) result.append(part_02) else: part_01['name'] = data_01['result'][0]['name'] amount = 0 subsidiaries = person_subsidiaries(data_01['result'][0]['id']) if len(subsidiaries['人员控股企业']['人员控股企业']) > 0: for item in subsidiaries['人员控股企业']['items']: reg = float(item['regCapital'].replace('万人民币', '')) percent = float(item['percent'].replace('%', '')) if reg > 3000 and percent > 50: amount += 1 if amount > 0: part_01['enterprise_amount'] = '旗下拥有{num}家资本实力较强的子公司,可为公司经营提供一定支持'.format(num=amount) else: part_01['enterprise_amount'] = '旗下无资本实力较强的子公司,对公司支持力度偏弱' result.append(part_01) return result def outbound_investment(param): """ 对外投资 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 对外投资数据 """ data_01 = param['对外投资']['对外投资'] data_02 = param['综合评价填报']['财务填报'] result = list() part_01 = dict() # 年限 part_01['year_03'] = data_02['资产负债表'][0]['报告期'][:4] # 对外投资数量 part_01['subsidiary_total_number'] = len(data_01['result']) # 投资总金额 part_01['investment_total_amount'] = str(calculate_amount(data_01['result'])['amount']) # 持股50%以上子公司 fifty_percent = list() for item in data_01['result']: percent = float(item['percent'].replace('%', '')) if percent > 50: fifty_percent.append(item) # 子公司数量 part_01['subsidiary_number'] = str(len(fifty_percent)) # 子公司投资金额合计 part_01['investment_amount'] = str(calculate_amount(fifty_percent)['amount']) # 对外投资集中行业 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') part_01['top_3_industry'] = industry_result['industry'] # 行业集中度 part_01['Industry_concentration'] = industry_result['concentration'] # 对外投资地域集中省市 base = calculate_amount(data_01['result'])['base'] base_amount = calculate_list(base) top_3_base = sorted(base_amount.items(), key=lambda x: x[1], reverse=True) region_result = calculate_tuple(top_3_base, data_01['result'], float(part_01['investment_total_amount']), 'region') part_01['top_3_region'] = region_result['industry'] part_01['Regional_concentration'] = region_result['concentration'] # 表2 part_02 = list() part_02.append(['被投资企业名称', '注册资本', '投资比例', '投资金额', '成立日期', '所属行业', '所属省份']) for item in data_01['result']: insert_list = list() insert_list.append(item['name']) insert_list.append(item['regCapital']) insert_list.append(item['percent']) insert_list.append(str(item['amount']) + '万元') insert_list.append(time_stamp(item['estiblishTime'])) insert_list.append(item['category']) insert_list.append(province_conversion(item['base'])) part_02.append(insert_list) result.append(part_01) result.append(part_02) return result def calculate_amount(param): """ 计算数据之和 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 数据合计 """ result = dict() result['amount'] = 0 result['industry'] = list() result['base'] = list() for item in param: result['amount'] += item['amount'] result['industry'].append(item['category']) result['base'].append(item['base']) return result def calculate_list(param): """ 计算列表中所有元素出现的次数 Parameters: param: list数据 Returns: 列表元素出现次数对象 """ result = dict() for item in param: result[item] = param.count(item) return result def calculate_tuple(param1, param2, param3, param4): """ 计算元组中值最大的三个 Parameters: param1: tuple数据 param2: 对外投资数据 param3: 对外投资总金额 param4: industry/region Returns: 元组元素出现次数对象 行业集中度 """ result = dict() if len(param1) > 3: data = param1[:3] result['industry'] = [data[0][0], data[1][0], data[2][0]] else: result['industry'] = list() for num in range(len(param1)): result['industry'].append(param1[num][0]) amount = 0 for item in param2: if param4 == 'industry': if item['category'] in result['industry']: amount += item['amount'] else: if item['base'] in result['industry']: amount += item['amount'] concentration = round(amount / param3 * 100, 2) if concentration > 60: result['concentration'] = '高' elif concentration > 40: result['concentration'] = '较高' elif concentration > 20: result['concentration'] = '适中' elif concentration > 10: result['concentration'] = '较低' else: result['concentration'] = '低' base_list = list() if param4 == 'region': for region in result['industry']: res = [v for k, v in p_map.items() if k == region][0] base_list.append(res) result['industry'] = '、'.join(base_list) else: result['industry'] = '、'.join(result['industry']) return result def time_stamp(param): """ 时间戳转换 Parameters: param: 时间戳数据 Returns: 转换后时间数据 """ estiblish_time = param / 1000 put_date = time.localtime(estiblish_time) date = time.strftime("%Y-%m-%d", put_date) return date def province_conversion(param): """ 省份转换 Parameters: param: 省份简称 Returns: 转换后省份全称 """ res = [v for k, v in p_map.items() if k == param][0] return res def import_export(param): """ 进出口权 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 对外投资数据 """ data_01 = param['进出口信用']['进出口信用'] result = list() part_01 = dict() if data_01: part_01['import_export_power'] = '拥有' + data_01['baseInfo']['creditRating'] part_01['influence'] = '大' else: part_01['import_export_power'] = '无' part_01['influence'] = '小' result.append(part_01) return result def intellectual_property(param): """ 知识产权 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 知识产权数据 """ data_01 = param['专利']['专利'] data_02 = param['软件著作权']['软件著作权'] result = list() part_01 = dict() part_02 = dict() part_03 = dict() today = datetime.datetime.today() year = today.year month = today.month # part_01 part_01['date'] = str(year) + '年' + str(month) + '月' if data_01 is None: part_01['patent_number'] = '0' part_01['patent_number_03'] = '0、0、0' part_01['patent_number_three_year'] = '0' part_01['patent_number_03_three_year'] = '0、0、0' else: part_01['patent_number'] = len(data_01) part_01['patent_number_three_year'] = 0 um = 0 ad = 0 ip = 0 um_03 = 0 ad_03 = 0 ip_03 = 0 for item in data_01: if year - int(item['pubDate'][:4]) <= 3: part_01['patent_number_three_year'] += 0 if item['patentType'] == '实用新型': um_03 += 1 elif item['patentType'] == '外观设计': ad_03 += 1 elif item['patentType'] == '发明专利': ip_03 += 1 if item['patentType'] == '实用新型': um += 1 elif item['patentType'] == '外观设计': ad += 1 elif item['patentType'] == '发明专利': ip += 1 part_01['patent_number_03'] = str(um) + '、' + str(ad) + '、' + str(ip) part_01['patent_number_03_three_year'] = str(um_03) + '、' + str(ad_03) + '、' + str(ip_03) # part_02 part_02['date'] = str(year) + '年' + str(month) + '月' if data_02 is None: part_02['copyrights_number'] = '0' part_02['copyrights_number_03'] = '0、0、0' part_02['copyrights_number_three_year'] = '0' part_02['copyrights_number_03_three_year'] = '0、0、0' else: part_02['copyrights_number'] = len(data_02) part_02['copyrights_number_three_year'] = 0 os = 0 ia = 0 fs = 0 os_03 = 0 ia_03 = 0 fs_03 = 0 for item in data_02: if year - int(item['regtime'][:4]) <= 3: part_02['copyrights_number_three_year'] += 0 if item['catnum'] == '操作系统': os_03 += 1 elif item['catnum'] == '行业应用软件': ia_03 += 1 elif item['catnum'] == '金融软件': fs_03 += 1 if item['patentType'] == '操作系统': os += 1 elif item['patentType'] == '行业应用软件': ia += 1 elif item['patentType'] == '金融软件': fs += 1 part_01['copyrights_number_03'] = str(os) + '、' + str(ia) + '、' + str(fs) part_01['copyrights_number_03_three_year'] = str(os_03) + '、' + str(ia_03) + '、' + str(fs_03) # part_03 patented_software = int(part_01['patent_number']) + int(part_02['copyrights_number']) if patented_software > 5000: part_03['patented_software'] = '较多' part_03['RD_capability'] = '强' elif patented_software > 1000: part_03['patented_software'] = '处于行业中游水平' part_03['RD_capability'] = '尚可' else: part_03['patented_software'] = '较少' part_03['RD_capability'] = '弱' result.append(part_01) result.append(part_02) result.append(part_03) return result def qualification_honor(param): """ 资质荣誉 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 资质荣誉数据 """ data = param['资质证书']['资质证书'] result = list() part_01 = dict() if len(data) == 0: part_01 = '无数据' result.append(part_01) else: part_02 = dict() part_01['Qualification'] = list() part_02['Qualification_number'] = 0 part_02['Qualification_international'] = list() part_02['Qualification_image'] = list() part_03 = list() part_03.append(['证书类型', '证书编号', '发证日期', '截至日期']) qh_tep = ['AAA级中国科技创新优秀企业', '高新技术企业', '科技型中小企业', '全国科技创新示范企业', 'AAA级中国自主创新产品'] qn_tep = ['GMP认证', '医疗器械质量管理体系认证', '中国质量认证中心_CQC自愿性产品认证', 'gmp认证', 'gsp认证', 'GSP认证', '安全生产标准化三级企业', '安全生产标准化证书', '质量合格、国家标准合格产品', '质量管理体系认证证书', '食品安全管理体系认证', '食品安全管理体系认证证书', 'CE认证', '日本PSE认证', 'CE认证证书'] qi_tep = ['CE认证', '日本PSE认证', 'CE认证证书'] qf_tep = ['中国著名品牌', '中国驰名品牌', '中国行业最具影响力品牌'] part_01['integration_deree'] = '较低' for item in data['result']: if item['certificateName'] in qh_tep: part_01['Qualification'].append(item['certificateName']) if item['certificateName'] == '两化融合管理体系评定证书': part_01['integration_deree'] = '较高' if item['certificateName'] in qn_tep: part_02['Qualification_number'] += 1 if item['certificateName'] in qi_tep: part_02['Qualification_international'].append(item['certificateName']) if item['certificateName'] in qf_tep: part_02['Qualification_image'].append(item['certificateName']) insert_data = list() insert_data.append(item['certificateName']) insert_data.append(item['certNo']) insert_data.append(item['startDate']) insert_data.append(item['endDate']) part_03.append(insert_data) # 企业资质 if len(part_01['Qualification']) > 0: part_01['Qualification'] = '、'.join(part_01['Qualification']) else: part_01['Qualification'] = '无' # 国际同行产品质量认证 if len(part_02['Qualification_international']) > 0: part_02['Qualification_international'] = '、'.join(part_02['Qualification_international']) part_02['Qualification_international'] = '尤其拥有{}等国际通行产品质量认证,对于开拓海外市场有积极意义'.format(part_02['Qualification_international']) else: part_02['Qualification_international'] = '但未拥有国际通行产品质量认证' # 是否被评为中国品牌 if len(part_02['Qualification_image']) > 0: part_02['Qualification_image'] = '、'.join(part_02['Qualification_image']) part_02['Qualification_image'] = '公司品牌知名度较高,被评为{},市场形象较好,有利于业务开展。'.format(part_02['Qualification_image']) else: part_02['Qualification_image'] = '公司品牌知名度较低,市场形象一般,不太利于业务开展。' result.append(part_01) result.append(part_02) result.append(part_03) return result def financing_information(param): """ 融资信息 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 融资信息数据 """ data = param['融资历史']['融资历史'] result = list() part_01 = dict() part_02 = dict() part_03 = dict() part_04 = dict() if len(data) == 0: part_01['number'] = 0 part_01['Financing_round'] = 0 part_01['Financing_amount'] = 0 part_01['top_3_investor'] = 0 else: part_01['number'] = data['total'] part_01['Financing_round'] = list() part_01['Financing_amount'] = 0 part_01['top_3_investor'] = list() for item in data['result']: part_01['Financing_round'].append(item['round']) if item['money'] == '未披露': part_01['Financing_amount'] += 0 else: part_01['Financing_amount'] += item['money'] part_01['top_3_investor'].append(item['investorName']) part_01['Financing_round'] = '、'.join(set(part_01['Financing_round'])) part_01['top_3_investor'] = '、'.join(set(part_01['top_3_investor'])) part_02['fin_channel'] = '银行贷款' part_03['Commercial_credit_level'] = '较好' part_03['Bargaining_power'] = '强' part_03['Financing_scale'] = '大' part_03['Financing_amount'] = part_01['Financing_amount'] part_04 = list() part_04.append(['日期', '融资金额', '融资轮次', '投资方']) for item in data['result']: insert_data = list() insert_data.append(time_stamp(item['pubTime'])) insert_data.append(item['money']) insert_data.append(item['round']) insert_data.append(item['investorName']) part_04.append(insert_data) result.append(part_01) result.append(part_02) result.append(part_03) result.append(part_04) return result def environmental_governance(param): """ 环境治理 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 环境治理数据 """ data_01 = param['评价结果'] data_02 = param['资质证书']['资质证书'] result = list() part_01 = dict() part_02 = dict() part_03 = dict() date = str(datetime.datetime.today().year) + '年' part_02['Qualification_number'] = 0 cp = ['排污许可证', '环保部_限制类固体废物进口', '排污登记信息', '环保部_国家重点监控企业名单', '环保部_自动类固体废物进口'] ep = ['低碳产品认证', '中国节能环保产品', '低碳产品认证-铝合金建筑型材', 'FSC认证', '环保产品认证', '环境标志产品', '环境管理体系认证', '绿色产品(认证活动一)', '绿色食品生产资料--食品添加剂类', '节能产品认证(不含建筑节能)', '低碳产品认证-通用硅酸盐水泥', '电子信息产品污染控制自愿性认证', '中国环保产品认证证书', '中国环保标志产品认证证书', '商品和服务在生命周期内的温室气体排放评价规范认证', '中国绿色环保企业', '绿色食品生产资料--饲料及饲料添加剂类', '中国优秀节能减排绿色环保企业', '工业固废处置及资源化工程专业甲级证书', '有机产品认证', '绿色产品(认证活动二)', '环保部_实施清洁生产审核并通过评估验收', '环境管理体系认证证书', '温室气体核查声明', '环保部_环境保护科学技术奖获奖项目名单', '环保部_环境标志', '绿色食品生产资料--肥料类', '低碳产品认证-中小型三相异步电动机', '节水产品认证', '中国环境标志产品认证证书', 'HSE管理体系评价证书'] score = round(data_01['经营评分']['环境'] / 10 * 100, 2) if len(data_02) == 0: part_01['certificate'] = '无资质' else: part_01['certificate'] = list() for item in data_02['result']: if item['certificateName'] in cp: part_01['certificate'].append(item['certificateName']) if item['certificateName'] in ep: part_02['Qualification_number'] += 1 if len(part_01['certificate']) == 0: part_01['certificate'] = '无资质' else: part_01['certificate'] = '、'.join(part_01['certificate']) # 段落一结论判断 if score < 50 or part_01['certificate'] == '无资质': part_01[ 'certificate'] = '公司绿色发展理念相对薄弱。公司绿色发展战略和绿色组织架构亦有待完善,生产过程对环境造成一定污染,' \ '尚未有污染缓解措施或污染缓解措施效果欠佳,环境问题或对公司正常经营造成负面影响。' else: part_01[ 'certificate'] = '公司为环境友好型企业。公司较为重视环境保护,实行绿色低碳发展理念,包括制定绿色发展战略、完善绿色组织架构、' \ '保障产品安全、合理安排节能减排和污染处理措施、提高资源利用效率、制定污染缓解措施等应对环境事件。' # 段落二结论判断 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) part_03['proportion_of_income'] = 0 # 段落三结论判断 if part_03['proportion_of_income'] > 50: part_03['proportion_of_income'] = '{year03}年公司绿色业务收入占营业收入的比重较大,' \ '为{proportion_of_income}' \ '%。'.format(year03=date,proportion_of_income=part_03['proportion_of_income']) elif part_03['proportion_of_income'] > 0: part_03['proportion_of_income'] = '{year03}年公司绿色业务收入占营业收入的比重较小,' \ '为{proportion_of_income}' \ '%。'.format(year03=date, proportion_of_income=part_03['proportion_of_income']) else: part_03['proportion_of_income'] = '{year03}年公司无绿色业务收入。'.format(year03=date) result.append(part_01) result.append(part_02) result.append(part_03) return result def social_responsibility(param): """ 社会责任 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 社会责任数据 """ data_01 = param['评价结果'] data_02 = param['资质证书']['资质证书'] sr = ['企业社会责任管理体系认证' '社会责任管理', '社会责任管理体系认证', '社会责任管理体系', '优秀供应商', '供应链安全管理体系认证证书', 'HACCP认证证书', 'BSCI认证'] result = list() part_01 = dict() qualification = list() part_01['Qualification_number'] = 0 score = round(data_01['经营评分']['社会责任'] / 10 * 100, 2) if len(data_02) == 0: part_01['Qualification_number'] = 0 else: for item in data_02['result']: if item['certificateName'] in sr: part_01['Qualification_number'] += 1 qualification.append(item['certificateName']) qualification = '、'.join(qualification) if score > 50 and part_01['Qualification_number'] > 0: part_01['Qualification_number'] = '公司积极履行社会责任,拥有{Qualification_number}项社会责任领域相关认证资质,' \ '包括{Qualification}。公司以公平、公正、自愿、市场化的原则开展业务,' \ '承担对于客户、员工、社区、供应链相关方的责任,企业形象较好,无社会负面事件,' \ '为公司业务拓展奠定较好基础。'.format(Qualification_number=part_01['Qualification_number'], Qualification=qualification) elif score > 50 and part_01['Qualification_number'] == 0: part_01['Qualification_number'] = '公司积极履行社会责任,未获得社会责任领域相关认证资质。' \ '公司以公平、公正、自愿、市场化的原则开展业务,' \ '承担对于客户、员工、社区、供应链相关方的责任,企业形象较好,无社会负面事件,' \ '为公司业务拓展奠定较好基础。' else: part_01['Qualification_number'] = '公司社会责任履行能力有待进一步提升,公司客户满意率偏低,供应链管理能力较弱,' \ '对员工提供的福利未达到行业平均水平,对区域经济发展贡献力度不大,有一定社会负面事件。' result.append(part_01) return result def corporate_governance(param): """ 公司治理 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 公司治理数据 """ data_01 = param['评价结果'] data_02 = param['风险数据'] result = list() part_01 = dict() score = round(data_01['经营评分']['公司治理'] / 10 * 100, 2) risk = data_02['关联风险']['周边风险']['高风险'] if score > 50 and risk == 0: part_01['governance_score'] = '公司治理水平较高。公司股权清晰,组织结构较完善,可满足业务发展需要;' \ '公司各类信息披露透明、公开、及时,信息披露质量较高。公司重视风险管理,' \ '包括信用风险在内的各类风险水平较低,未发生重大风险事件。' elif score > 50 and risk > 0: part_01['governance_score'] = '公司治理水平较高。公司股权清晰,组织结构较完善,可满足业务发展需要;' \ '公司各类信息披露透明、公开、及时,信息披露质量较高;但风险控制能力有待加强。' else: part_01['governance_score'] = '公司规模较小,组织架构尚不完善,股权结构有待进一步明晰,信息披露透明度和质量欠佳。' \ '风险控制能力有待加强。整体来看,公司治理水平有待进一步提升。' result.append(part_01) return result def profitability(param): """ 盈利能力 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 盈利能力数据 """ data_01 = param['综合评价填报'] data_02 = param['评价结果'] data_03 = param['指标明细'] result = list() part_01 = dict() part_02 = dict() # 收入规模 income = float(data_01['财务填报']['利润表'][0]['营业收入']) if income > 400000000: part_02['income_scale'] = '较大' elif income > 20000000: part_02['income_scale'] = '处于行业中等水平' elif income > 3000000: part_02['income_scale'] = '较小' else: part_02['income_scale'] = '小' # 产品技术含量 rona = data_02['财务评分']['盈利能力']['净资产收益率'] if rona >= 8: part_02['technology_level'] = '高' elif rona >= 8 * 0.8: part_02['technology_level'] = '较高' elif rona >= 8 * 0.6: part_02['technology_level'] = '处于行业平均水平' elif rona >= 8 * 0.4: part_02['technology_level'] = '较低' else: part_02['technology_level'] = '低' # 成本控制能力(期间费用率) part_02['Cost_control_capability'] = '欠佳' # 年度 part_02['date'] = data_01['财务填报']['利润表'][1]['报告期'][:4] # 净资产收益率 part_02['return_on_net_assets_analysis'] = str(data_03[1]['净资产收益率']) # 总资产报酬率 part_02['return_on_total_assets_analysis'] = str(data_03[1]['总资产报酬率']) # 盈利能力 p_score = data_02['财务评分']['盈利能力']['净资产收益率'] + data_02['财务评分']['盈利能力']['总资产报酬率'] if p_score >= 16: part_02['profitability_analysis'] = '好' elif p_score >= 16 * 0.8: part_02['profitability_analysis'] = '较好' elif p_score >= 16 * 0.8: part_02['profitability_analysis'] = '有待提高' elif p_score >= 16 * 0.8: part_02['profitability_analysis'] = '较弱' else: part_02['profitability_analysis'] = '弱' result.append(part_01) result.append(part_02) return result def asset_quality(param): """ 资产质量 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 资产质量数据 """ data_01 = param['综合评价填报'] data_02 = param['评价结果'] data_03 = param['指标明细'] result = list() part_01 = dict() part_02 = dict() part_03 = dict() # 年度 part_03['date'] = data_01['财务填报']['利润表'][1]['报告期'][:4] # 应收账款周转率 part_03['account_turnover_analysis'] = str(data_03[0]['应收账款周转率']) # 存货周转率 part_03['inventory_turnover_analysis'] = str(data_03[0]['存货周转率']) # 总资产周转率 part_03['total_assets_turnover_analysis'] = str(data_03[0]['总资产周转率']) # 行业水平/资产质量 a_s = data_02['财务评分']['资产质量']['总资产周转率'] + data_02['财务评分']['资产质量']['应收账款周转率'] + data_02['财务评分']['资产质量']['存货周转率'] if a_s >= 18: part_03['industry_level'] = '高' part_03['asset_quality'] = '好' elif a_s >= 18 * 0.8: part_03['industry_level'] = '较高' part_03['asset_quality'] = '较好' elif a_s >= 18 * 0.6: part_03['industry_level'] = '中等' part_03['asset_quality'] = '有待改善' elif a_s >= 18 * 0.4: part_03['industry_level'] = '偏低' part_03['asset_quality'] = '较差' else: part_03['industry_level'] = '低' part_03['asset_quality'] = '差' result.append(part_01) result.append(part_02) result.append(part_03) return result def debt_risk(param): """ 债务风险 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 债务风险数据 """ data_02 = param['评价结果'] data_03 = param['指标明细'] result = list() part_01 = dict() part_02 = dict() d_s = data_02['财务评分']['债务风险']['资产负债率'] + data_02['财务评分']['债务风险']['已获利息倍数'] + data_02['财务评分']['债务风险']['速动比率'] if d_s >= 18: part_02['debt_risk'] = '大' elif d_s >= 18 * 0.8: part_02['debt_risk'] = '较大' elif d_s >= 18 * 0.6: part_02['debt_risk'] = '适中' elif d_s >= 18 * 0.4: part_02['debt_risk'] = '较小' else: part_02['debt_risk'] = '小' # 资产负债率区间 if len(data_03) >= 3: rate = [data_03[0]['资产负债率'], data_03[1]['资产负债率'], data_03[2]['资产负债率']] rate.sort() part_02['min_asset_liability_ratio'] = str(rate[0]) part_02['max_asset_liability_ratio'] = str(rate[2]) else: rate_01 = data_03[0]['资产负债率'] rate_02 = data_03[1]['资产负债率'] if rate_01 > rate_02: part_02['max_asset_liability_ratio'] = str(rate_01) part_02['min_asset_liability_ratio'] = str(rate_02) else: part_02['max_asset_liability_ratio'] = str(rate_02) part_02['min_asset_liability_ratio'] = str(rate_01) # 财务结构 alr = data_03[0]['资产负债率'] if alr < 0.4: part_02['fin_structure_analysis'] = '稳健' elif alr < 0.55: part_02['fin_structure_analysis'] = '较稳健' elif alr < 0.7: part_02['fin_structure_analysis'] = '稳健性有待进一步加强' else: part_02['fin_structure_analysis'] = '欠稳健' # 经营性现金流对利息的保障程度 ic_s = data_02['财务评分']['债务风险']['已获利息倍数'] if ic_s >= 5: part_02['operating_cash_flow_to_debt'] = '强' elif ic_s >= 5 * 0.8: part_02['operating_cash_flow_to_debt'] = '较强' elif ic_s >= 5 * 0.6: part_02['operating_cash_flow_to_debt'] = '尚可' elif ic_s >= 5 * 0.4: part_02['operating_cash_flow_to_debt'] = '较弱' else: part_02['operating_cash_flow_to_debt'] = '弱' # 已获利息倍数 part_02['interest_cover'] = str(data_03[0]['已获利息倍数']) # 资产流动性 qr_s = data_02['财务评分']['债务风险']['速动比率'] if qr_s >= 5: part_02['Assets_liquidity'] = '好' elif qr_s >= 5 * 0.8: part_02['Assets_liquidity'] = '较好' elif qr_s >= 5 * 0.6: part_02['Assets_liquidity'] = '一般' elif qr_s >= 5 * 0.4: part_02['Assets_liquidity'] = '较差' else: part_02['Assets_liquidity'] = '差' # 速动比率 part_02['quick_ratio'] = str(data_03[0]['速动比率']) result.append(part_01) result.append(part_02) return result def growth_ability(param): """ 成长能力 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 成长能力数据 """ data_02 = param['评价结果'] data_03 = param['指标明细'] result = list() part_01 = dict() part_02 = dict() # 重视程度 ti_s = data_02['财务评分']['经营增长']['技术投入比率'] if ti_s >= 5 * 0.7: part_02['degree_of_imprtance'] = '重视技术研发或先进工艺的开发' elif ti_s >= 5 * 0.4: part_02['degree_of_imprtance'] = '对技术研发或先进工艺的开发的重视程度一般' else: part_02['degree_of_imprtance'] = '不重视技术研发或先进工艺的开发' # 技术投入比 part_02['technology_input_ratio'] = str(data_03[1]['技术投入比率']) # 创新对公司贡献/整体成长能力 ga_s = data_02['财务评分']['经营增长']['营业增长率'] + data_02['财务评分']['经营增长']['总资产增长率'] + data_02['财务评分']['经营增长']['技术投入比率'] if ga_s >= 18: part_02['contribution'] = '大' part_02['growth_ability'] = '好' elif ga_s >= 18 * 0.8: part_02['contribution'] = '较大' part_02['growth_ability'] = '较好' elif ga_s >= 18 * 0.6: part_02['contribution'] = '尚可' part_02['growth_ability'] = '一般' elif ga_s >= 18 * 0.4: part_02['contribution'] = '较小' part_02['growth_ability'] = '较差' else: part_02['contribution'] = '小' part_02['growth_ability'] = '差' # 营业收入增长率 part_02['growth_rate_of_operating_revenue'] = str(data_03[1]['营业增长率']) # 总资产增长率 part_02['growth_rate_of_total_assets'] = str(data_03[1]['总资产增长率']) result.append(part_01) result.append(part_02) return result def compliance_risk(param): """ 合规风险 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 合规风险数据 """ data = param['风险数据']['合规风险'] result = list() part_01 = dict() yes_no = list() for key, value in data.items(): if value > 0: yes_no.append('有') else: yes_no.append('无') part_01['yes_no_01'] = yes_no[0] part_01['yes_no_02'] = yes_no[1] part_01['yes_no_03'] = yes_no[2] part_01['yes_no_04'] = yes_no[3] part_01['yes_no_05'] = yes_no[4] part_01['yes_no_06'] = yes_no[5] part_01['yes_no_07'] = yes_no[6] part_01['yes_no_08'] = yes_no[7] if 0 not in yes_no: part_01['risk_level'] = '低' else: part_01['risk_level'] = '高' result.append(part_01) return result def operational_ris(param): """ 经营风险 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 经营风险数据 """ data = param['风险数据']['经营风险'] result = list() part_01 = dict() part_01['risk_num'] = 0 for key, value in data.items(): part_01['risk_num'] += value if part_01['risk_num'] > 50: part_01['risk_level'] = '较高' elif part_01['risk_num'] > 30: part_01['risk_level'] = '适中' else: part_01['risk_level'] = '较低' part_01['risk_num'] = str(part_01['risk_num']) result.append(part_01) return result def associated_risk(param): """ 关联风险 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 关联风险数据 """ data = param['周边风险']['周边风险']['list'] result = list() part_01 = dict() part_02 = dict() part_01['risk_num'] = 0 extent = ["失信被执行人", "司法拍卖", "限制消费令", "强制清算", "涉金融黑名单", "破产案件", "欠税公告", "环保处罚", "立案信息", "税收违法", "违规处理"] part_01['include'] = '不包括' for item in data: if item['title'] in extent: part_01['include'] = '包括' part_01['risk_num'] += item['total'] if part_01['risk_num'] < 50 and part_01['include'] == '不包括': part_01['will'] = '不会' else: part_01['will'] = '会' if part_01['risk_num'] > 50 or part_01['include'] == '包括': part_01['risk_level'] = '较高' elif 20 < part_01['risk_num'] < 50 and part_01['include'] == '不包括': part_01['risk_level'] = '适中' else: part_01['risk_level'] = '较低' part_01['risk_num'] = str(part_01['risk_num']) result.append(part_01) return result def conclusion(param): """ 结论 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 结论数据 """ data_01 = param['评价结果'] result = list() part_01 = dict() part_02 = dict() part_03 = dict() part_01['describe'] = list() # 环境部分得分 ep_s = data_01['经营评分']['环境'] if ep_s > 10 * 0.5: part_01['describe'].append('公司为环境友好型企业') else: part_01['describe'].append('公司绿色发展理念相对薄弱') # 社会责任部分得分 sr_s = data_01['经营评分']['社会责任'] if sr_s > 10 * 0.5: part_01['describe'].append('积极履行社会责任') else: part_01['describe'].append('社会责任履行能力有待进一步提升') # 公司治理部分得分 cg_s = data_01['经营评分']['公司治理'] if cg_s > 10 * 0.5: part_01['describe'].append('内部治理水平较高') else: part_01['describe'].append('治理水平有待进一步提升') part_01['describe'] = ','.join(part_01['describe']) # 企业整体素质 eq_s = data_01['经营评分']['合计'] if eq_s >= 30: part_02['enterprise_quality'] = '好' elif eq_s >= 30 * 0.8: part_02['enterprise_quality'] = '较好' elif eq_s >= 30 * 0.6: part_02['enterprise_quality'] = '一般' elif eq_s >= 30 * 0.4: part_02['enterprise_quality'] = '较差' else: part_02['enterprise_quality'] = '差' # 公司盈利能力得分 p_s = data_01['财务评分']['盈利能力']['净资产收益率'] + data_01['财务评分']['盈利能力']['总资产报酬率'] if p_s >= 16: part_02['Profitability'] = '强' elif p_s >= 16 * 0.8: part_02['Profitability'] = '较强' elif p_s >= 16 * 0.6: part_02['Profitability'] = '尚可' elif p_s >= 16 * 0.4: part_02['Profitability'] = '较弱' else: part_02['Profitability'] = '弱' # 资产质量得分 aq_s = data_01['财务评分']['资产质量']['总资产周转率'] + data_01['财务评分']['资产质量']['应收账款周转率'] + data_01['财务评分']['资产质量']['存货周转率'] if aq_s >= 18: part_02['asset_quality'] = '好' elif aq_s >= 18 * 0.8: part_02['asset_quality'] = '较好' elif aq_s >= 18 * 0.6: part_02['asset_quality'] = '一般' elif aq_s >= 18 * 0.4: part_02['asset_quality'] = '较差' else: part_02['asset_quality'] = '差' # 债务风险得分 dr_s = data_01['财务评分']['债务风险']['资产负债率'] + data_01['财务评分']['债务风险']['已获利息倍数'] + data_01['财务评分']['债务风险']['速动比率'] if dr_s >= 18: part_02['debt_risk'] = '高' elif dr_s >= 18 * 0.8: part_02['debt_risk'] = '较高' elif dr_s >= 18 * 0.6: part_02['debt_risk'] = '适中' elif dr_s >= 18 * 0.4: part_02['debt_risk'] = '较低' else: part_02['debt_risk'] = '低' # 成长空间得分 gs_s = data_01['财务评分']['经营增长']['营业增长率'] + data_01['财务评分']['经营增长']['总资产增长率'] + data_01['财务评分']['经营增长']['技术投入比率'] if gs_s >= 18: part_02['growth_ability'] = '大' elif gs_s >= 18 * 0.8: part_02['growth_ability'] = '较大' elif gs_s >= 18 * 0.6: part_02['growth_ability'] = '不大' elif gs_s >= 18 * 0.4: part_02['growth_ability'] = '较小' else: part_02['growth_ability'] = '小' # 企业风险得分 er_s = None part_03['company'] = data_01['企业名称'] part_03['credit_rank'] = data_01['信用等级'] result.append(part_01) result.append(part_02) result.append(part_03) return result def appendix_one(param): """ 附录一 清洗数据库数据,根据需要返回 Parameters: param: 数据库数据 Returns: 附录一数据 """ data_01 = param['综合评价填报']['财务填报'] data_02 = param['指标明细'] result = list() for key, value in data_01['资产负债表'][0].items(): insert_list = list() insert_list.append(key) insert_list.append(str(value)) insert_list.append(str(data_01['资产负债表'][1][key])) insert_list.append(str(data_01['资产负债表'][2][key])) result.append(insert_list) for key, value in data_01['利润表'][0].items(): if key != '报告期': insert_list = list() insert_list.append(key) insert_list.append(str(value)) insert_list.append(str(data_01['利润表'][1][key])) insert_list.append(str(data_01['利润表'][2][key])) result.append(insert_list) for key, value in data_01['补充数据表'][0].items(): if key != '报告期': insert_list = list() insert_list.append(key) insert_list.append(str(value)) insert_list.append(str(data_01['补充数据表'][1][key])) insert_list.append(str(data_01['补充数据表'][2][key])) result.append(insert_list) for k, v in data_02[0].items(): if k != '企业名称' and k != '年报期' and k != '企业ID': try: insert_list = list() insert_list.append(k) insert_list.append(str(v)) insert_list.append(str(data_02[1][k])) insert_list.append(str(data_02[2][k])) result.append(insert_list) except IndexError: insert_list = list() insert_list.append(k) insert_list.append(str(v)) insert_list.append(str(data_02[1][k])) insert_list.append('-') result.append(insert_list) return result def save_data(param1, param2): """ 保存清洗后报告数据 Parameters: param1: 评价ID param2: 报告数据 Returns: result: 保存结果 """ res = conserve_data(db='评价', col='报告数据', cid=param1, insert_data=param2) return res