181 lines
7.8 KiB
Python
181 lines
7.8 KiB
Python
import requests as rq
|
||
import json
|
||
import pandas as pd
|
||
import numpy as np
|
||
from fastapi import HTTPException
|
||
|
||
|
||
def parse_file_data_interface(file_path):
|
||
pass
|
||
questionnaire_dict = dict()
|
||
financial_dict = dict()
|
||
xls = pd.read_excel(file_path, sheet_name=None)
|
||
for sheet_name, df in xls.items():
|
||
if sheet_name == '问卷数据':
|
||
questionnaire_data = df.iloc[0:55, 0:2]
|
||
questionnaire_data = questionnaire_data.replace(np.nan, None)
|
||
questionnaire_dict = dict(zip(questionnaire_data.iloc[:, 0], questionnaire_data.iloc[:, 1]))
|
||
miss_val = list()
|
||
for key, val in questionnaire_dict.items():
|
||
if val is None:
|
||
miss_val.append(key)
|
||
# if miss_val:
|
||
# miss_val = ",".join(miss_val)
|
||
# print("问卷数据未填报完整:{}".format(miss_val))
|
||
# raise HTTPException(status_code=400, detail="问卷数据未填报完整:{}".format(miss_val))
|
||
elif sheet_name == '财务数据':
|
||
# 获取财务数据年份
|
||
financial_time = df.iloc[0, 1:3].index.tolist()
|
||
year = 1
|
||
for j in financial_time:
|
||
try:
|
||
if '年' in j:
|
||
year += 1
|
||
except TypeError:
|
||
continue
|
||
|
||
financial_dict = dict()
|
||
financial_data = df.iloc[0:, 0:year]
|
||
financial_data.drop(financial_data.tail(1).index, inplace=True)
|
||
financial_data = financial_data.replace(np.nan, None)
|
||
for i in range(len(financial_time)):
|
||
try:
|
||
if '年' in financial_time[i]:
|
||
financial_dict[financial_time[i]] = dict(
|
||
zip(financial_data.iloc[:, 0], financial_data.iloc[:, i + 1]))
|
||
except TypeError:
|
||
continue
|
||
|
||
return {
|
||
"问卷数据": questionnaire_dict,
|
||
"财报数据": financial_dict
|
||
}
|
||
|
||
def parse_file_data_interface2(file_path):
|
||
file_data = {
|
||
"问卷数据": {
|
||
"公司全称": "成都普瑞眼科医院股份有限公司",
|
||
"统一社会信用代码": "91510106785430077J",
|
||
"2020~2022年公司股东变更次数": 2,
|
||
"是否设立董事会": "是",
|
||
"董事会人数": 8,
|
||
"独立董事人数": 2,
|
||
"董事会会议次数": 10,
|
||
"董事会出席率": 100,
|
||
"是否设立监事会": "是",
|
||
"监事会人数": 3,
|
||
"非职工监事委派单位": "内部选举",
|
||
"是否设立党委会": "否",
|
||
"公司战略符合哪些": "绿色、双碳、人才、创新、乡村振兴、国家安全、金融安全、就业优先",
|
||
"是否将风险管理纳入公司战略": "是",
|
||
"是否设立风险管理部门": "是",
|
||
"公司风险管理体系覆盖哪些部门": "市场、后勤、人力、财务、合规",
|
||
"2022年末数字化或智能化的风险控制方式覆盖比例": 50,
|
||
"2022年公司数据安全投入金额": 152,
|
||
"为公司提供数据安全的供应商名称": "华为技术有限公司、华为云计算技术有限公司",
|
||
"2022年产品研发投入金额": 200.5,
|
||
"2022年末公司产品系列": 2,
|
||
"2022年末公司产品种类": 5,
|
||
"2022年末公司产品数量": 100,
|
||
"2022年公司新产品数量": 15,
|
||
"公司是否曾被纳入黑名单": "否",
|
||
"近三年公司信用修复次数": 0,
|
||
"公司获得的国家级荣誉数量": 5,
|
||
"公司获得的省级荣誉数量": 10,
|
||
"公司注册商标数量": 20,
|
||
"知名商标或品牌数量(例如驰名商标)": 2,
|
||
"国家级商标或品牌数量": 5,
|
||
"省级商标或品牌数量": 10,
|
||
"2022年公司缴纳的社会保险": 102.58,
|
||
"公司缴纳的社会保险种类": "五险一金",
|
||
"2022年公司员工因公死亡数量": 2,
|
||
"2022年公司员工工伤数量": 5,
|
||
"2022年公司提供服务次数": 102584,
|
||
"2022年公司被客户投诉次数": 265,
|
||
"2020~2022年公司信贷、债券、非标融资违约次数": 0,
|
||
"2020~2022年公司信贷、债券、非标融资违约金额": 0,
|
||
"2022年公司因关联方违约代偿的金额": 15,
|
||
"2022年公司应为关联方代偿金额(为关联方提供担保,且该关联方发生违约的金额)": 120,
|
||
"2020年公司股东或关联方给予公司的资金支持金额": 200,
|
||
"2021年公司股东或关联方给予公司的资金支持金额": 200,
|
||
"2022年公司股东或关联方给予公司的资金支持金额": 200,
|
||
"2020年公司关联交易金额": 159.28,
|
||
"2021年公司关联交易金额": 195.88,
|
||
"2022年公司关联交易金额": 205.68,
|
||
"公司是否参与行业标准和规范制定": "是",
|
||
"牵头制定的行业标准名称": "《千古》《有何不可》《知足》",
|
||
"牵头制定的规范名称": "《葡萄成熟时》《陪你度过漫长岁月》",
|
||
"参与制定的行业标准名称": "《慢慢喜欢你》",
|
||
"参与制定的规范名称": "《姗姗》"
|
||
},
|
||
"财报数据": {
|
||
"2021年末": {
|
||
"数据是否经过审计":"是",
|
||
"财务数据": "2021年末",
|
||
"资产负债表": None,
|
||
"总资产": 6478468.9,
|
||
"净资产": 1772251.9,
|
||
"流动资产": 5231207.8,
|
||
"流动负债": 1293325.2,
|
||
"存货": 3858229.4,
|
||
"预付账款": 36937.9,
|
||
"应收票据": 0,
|
||
"应收账款": 4691.4,
|
||
"利润表": None,
|
||
"营业收入": 58448.8,
|
||
"主营业务成本": 60885.4,
|
||
"利润总额": 30918.8,
|
||
"净利润": 25281.9,
|
||
"总负债": 25281.9,
|
||
"计入财务费用的利息支出": 5704.1,
|
||
"现金流量表": None,
|
||
"经营性净现金流": -476663.2
|
||
},
|
||
"2022年末": {
|
||
"数据是否经过审计": "是",
|
||
"财务数据": "2022年末",
|
||
"资产负债表": None,
|
||
"总资产": 7437834.9,
|
||
"净资产": 2269957.7,
|
||
"流动资产": 5753381.9,
|
||
"流动负债": 1546735.1,
|
||
"存货": 4458149.5,
|
||
"预付账款": 14129.6,
|
||
"应收票据": 0,
|
||
"应收账款": 7474.9,
|
||
"利润表": None,
|
||
"营业收入": 214701.3,
|
||
"主营业务成本": 162917.8,
|
||
"利润总额": 84587.2,
|
||
"净利润": 69785.4,
|
||
"总负债": 25281.9,
|
||
"计入财务费用的利息支出": 18922.5,
|
||
"现金流量表": None,
|
||
"经营性净现金流": -178170.9
|
||
}
|
||
}
|
||
}
|
||
return file_data
|
||
|
||
|
||
def bj_rate_interface(rate_data):
|
||
"""
|
||
保健业评级接口
|
||
"""
|
||
res = rq.post('http://127.0.0.1:8010/api/health_industry/score_calculate', json.dumps(
|
||
{"name": '保健服务业信誉评级模型', "index": rate_data}), timeout=8)
|
||
print(rate_data)
|
||
data = res.json()
|
||
return data
|
||
|
||
|
||
def bj_finance_cal_interface(data):
|
||
"""
|
||
财报指标计算接口
|
||
"""
|
||
res = rq.post('http://127.0.0.1:8010/api/health_industry/index_calculate', json.dumps(
|
||
{"name": '保健服务业信誉评级模型', "index": data}), timeout=8)
|
||
data = res.json()
|
||
return data
|
||
|