464 lines
19 KiB
Python
464 lines
19 KiB
Python
from Utils.ObjUtil import SpecObject
|
|
from Utils.ValidateUtil import ValidateAttr, Validate
|
|
|
|
|
|
class BasicInfo(SpecObject):
|
|
"""基本工商信息"""
|
|
|
|
status = ValidateAttr(field="status", type=str, default=None)
|
|
legal_person = ValidateAttr(field="legal_person", type=str, default=None)
|
|
company_type = ValidateAttr(field="company_type", type=str, default=None)
|
|
taxpayer_id = ValidateAttr(field="taxpayer_id", type=str, default=None)
|
|
business_scope = ValidateAttr(field="business_scope", type=str, default=None)
|
|
registered_capital = ValidateAttr(field="registered_capital", type=str, default=None)
|
|
paid_capital = ValidateAttr(field="paid_capital", type=str, default=None)
|
|
registered_address = ValidateAttr(field="registered_address", type=str, default=None)
|
|
registration_authority = ValidateAttr(field="registration_authority", type=str, default=None)
|
|
industry = ValidateAttr(field="industry", type=str, default=None)
|
|
staff_size = ValidateAttr(field="staff_size", type=str, default=None)
|
|
people_insured_num = ValidateAttr(field="people_insured_num", type=int, default=None)
|
|
micro_company = ValidateAttr(field="micro_company", type=str, in_list=["是", "否"], default=None)
|
|
|
|
fields_map = {
|
|
"status": "企业状态",
|
|
"legal_person": "法定代表人",
|
|
"company_type": "企业类型",
|
|
"taxpayer_id": "纳税人识别号",
|
|
"business_scope": "经营范围",
|
|
"registered_capital": "注册资本",
|
|
"paid_capital": "实缴资本",
|
|
"registered_address": "注册地址",
|
|
"registration_authority": "登记机关",
|
|
"industry": "行业",
|
|
"staff_size": "人员规模",
|
|
"people_insured_num": "参保人数",
|
|
"micro_company": "小微企业"
|
|
}
|
|
|
|
|
|
class ShareHolder(SpecObject):
|
|
"""股东信息"""
|
|
|
|
name = ValidateAttr(field='name', type=str)
|
|
share_holder_type = ValidateAttr(field='share_holder_type', type=str, default=None)
|
|
share_holding_ratio = ValidateAttr(field="share_holding_ratio", type=str, default=None)
|
|
subscription_amount = ValidateAttr(field="subscription_amount", type=str, default=None)
|
|
subscription_date = ValidateAttr(field="subscription_date", type=str, default=None)
|
|
paid_amount = ValidateAttr(field="paid_amount", type=list, default=[])
|
|
payment_method = ValidateAttr(field="payment_method", type=list, default=[])
|
|
payment_time = ValidateAttr(field="payment_time", type=list, default=[])
|
|
|
|
fields_map = {
|
|
"name": "股东",
|
|
"share_holder_type": "股东类型",
|
|
"share_holding_ratio": "持股比例",
|
|
"subscription_amount": "认缴金额",
|
|
"subscription_date": "认缴日期",
|
|
"paid_amount": "实缴金额",
|
|
"payment_method": "实缴方式",
|
|
"payment_time": "实缴时间"
|
|
}
|
|
|
|
|
|
class MainMember(SpecObject):
|
|
"""主要成员"""
|
|
|
|
name = ValidateAttr(field="name", type=str)
|
|
job_title = ValidateAttr(field="job_title", type=list, default=None)
|
|
|
|
fields_map = {
|
|
"name": "姓名",
|
|
"job_title": "职务"
|
|
}
|
|
|
|
|
|
class HeadInfo(SpecObject):
|
|
""""""
|
|
|
|
class LatestCCRating(SpecObject):
|
|
""""""
|
|
level = ValidateAttr(field='level', type=str, default='N/A')
|
|
score = ValidateAttr(field='score', type=str, default='N/A')
|
|
rating_time = ValidateAttr(field='rating_time', type=str, default='N/A')
|
|
|
|
fields_map = {
|
|
"level": "信用等级",
|
|
"score": "信用评分",
|
|
"rating_time": "评价时间"
|
|
}
|
|
|
|
class LatestESGRating(SpecObject):
|
|
""""""
|
|
level = ValidateAttr(field='level', type=str, default='N/A')
|
|
score = ValidateAttr(field='score', type=str, default='N/A')
|
|
rating_time = ValidateAttr(field='rating_time', type=str, default='N/A')
|
|
|
|
fields_map = {
|
|
"level": "评价等级",
|
|
"score": "ESG得分",
|
|
"rating_time": "评价时间"
|
|
}
|
|
|
|
name = ValidateAttr(field='name', type=str)
|
|
verify_status = ValidateAttr(field='verify_status', in_list=["已认证", "未认证"])
|
|
latest_cc_rating = ValidateAttr(field='latest_cc_rating', type=LatestCCRating)
|
|
latest_esg_rating = ValidateAttr(field='latest_esg_rating', type=LatestESGRating)
|
|
|
|
fields_map = {
|
|
"name": "企业名称",
|
|
"verify_status": "企业认证",
|
|
"latest_cc_rating": "综合信用评价",
|
|
"latest_esg_rating": "ESG评价"
|
|
}
|
|
|
|
|
|
class CCRating(SpecObject):
|
|
"""综信评价分析"""
|
|
|
|
class CCRatingPerformance(SpecObject):
|
|
"""综合信用表现"""
|
|
|
|
class IndexRadar(SpecObject):
|
|
"""指标雷达"""
|
|
|
|
class CCRatingIndexRadarFactors(SpecObject):
|
|
"""综信分析维度"""
|
|
environment = ValidateAttr(field='environment', type=[int, float])
|
|
social_responsibility = ValidateAttr(field='social_responsibility', type=[int, float])
|
|
corporate_governance = ValidateAttr(field='corporate_governance', type=[int, float])
|
|
profitability = ValidateAttr(field='profitability', type=[int, float])
|
|
asset_quality = ValidateAttr(field='asset_quality', type=[int, float])
|
|
debt_risk = ValidateAttr(field='debt_risk', type=[int, float])
|
|
business_growth = ValidateAttr(field='business_growth', type=[int, float])
|
|
compliance_risk = ValidateAttr(field='compliance_risk', type=[int, float])
|
|
business_risk = ValidateAttr(field='business_risk', type=[int, float])
|
|
associated_risk = ValidateAttr(field='associated_risk', type=[int, float])
|
|
|
|
fields_map = {
|
|
"environment": "环境",
|
|
"social_responsibility": "社会责任",
|
|
"corporate_governance": "公司治理",
|
|
"profitability": "盈利能力",
|
|
"asset_quality": "资产质量",
|
|
"debt_risk": "债务风险",
|
|
"business_growth": "经营增长",
|
|
"compliance_risk": "合规风险",
|
|
"business_risk": "经营风险",
|
|
"associated_risk": "关联风险"
|
|
}
|
|
|
|
index_score = ValidateAttr(field='index_score', type=CCRatingIndexRadarFactors)
|
|
max_score = ValidateAttr(field='max_score', type=CCRatingIndexRadarFactors)
|
|
|
|
fields_map = {
|
|
"index_score": "指标得分",
|
|
"max_score": "最大分数"
|
|
}
|
|
|
|
index_radar = ValidateAttr(field='index_radar', type=IndexRadar)
|
|
|
|
fields_map = {
|
|
"index_radar": "指标雷达"
|
|
}
|
|
|
|
class CreditAnalysis(SpecObject):
|
|
"""信用分析"""
|
|
|
|
management_analysis = ValidateAttr(field='management_analysis', type=str)
|
|
financial_analysis = ValidateAttr(field='financial_analysis', type=str)
|
|
risk_analysis = ValidateAttr(field='risk_analysis', type=str)
|
|
evaluation_opinion = ValidateAttr(field='evaluation_opinion', type=str)
|
|
view_report = ValidateAttr(field='view_report', type=str)
|
|
|
|
fields_map = {
|
|
"management_analysis": "经营分析",
|
|
"financial_analysis": "财务分析",
|
|
"risk_analysis": "风险分析",
|
|
"evaluation_opinion": "评价意见",
|
|
"view_report": "查看报告"
|
|
}
|
|
|
|
class IndexTable(SpecObject):
|
|
"""指标表格"""
|
|
|
|
class CCRatingFinancialIndex(SpecObject):
|
|
"""财务指标"""
|
|
profit_ability = ValidateAttr(field='profit_ability', type=[int, float, str])
|
|
asset_quality = ValidateAttr(field='asset_quality', type=[int, float, str])
|
|
debt_risk = ValidateAttr(field='debt_risk', type=[int, float, str])
|
|
business_growth = ValidateAttr(field='business_growth', type=[int, float, str])
|
|
|
|
fields_map = {
|
|
"profit_ability": "盈利能力",
|
|
"asset_quality": "资产质量",
|
|
"debt_risk": "债务风险",
|
|
"business_growth": "经营增长"
|
|
}
|
|
|
|
class CCRatingRiskIndex(SpecObject):
|
|
"""风险指标"""
|
|
compliance_risk = ValidateAttr(field='compliance_risk', type=str)
|
|
business_risk = ValidateAttr(field='business_risk', type=str)
|
|
associated_risk = ValidateAttr(field='associated_risk', type=str)
|
|
|
|
fields_map = {
|
|
"compliance_risk": "合规风险",
|
|
"business_risk": "经营风险",
|
|
"associated_risk": "关联风险"
|
|
}
|
|
|
|
class CCRatingOperatingIndex(SpecObject):
|
|
"""经营指标"""
|
|
environment = ValidateAttr(field='environment', type=str)
|
|
social_responsibility = ValidateAttr(field='social_responsibility', type=str)
|
|
corporate_governance = ValidateAttr(field='corporate_governance', type=str)
|
|
|
|
fields_map = {
|
|
"environment": "环境",
|
|
"social_responsibility": "社会责任",
|
|
"corporate_governance": "公司治理"
|
|
}
|
|
|
|
financial_index = ValidateAttr(field='financial_index', type=CCRatingFinancialIndex)
|
|
risk_index = ValidateAttr(field='risk_index', type=CCRatingRiskIndex)
|
|
operating_index = ValidateAttr(field='operating_index', type=CCRatingOperatingIndex)
|
|
|
|
fields_map = {
|
|
"financial_index": "财务指标",
|
|
"risk_index": "风险指标",
|
|
"operating_index": "经营指标"
|
|
}
|
|
|
|
class RankLevelsInHistory(SpecObject):
|
|
"""历史级别"""
|
|
|
|
credit_rating = ValidateAttr(field='credit_rating', type=str)
|
|
credit_score = ValidateAttr(field='credit_score', type=[int, float])
|
|
evaluation_time = ValidateAttr(field='evaluation_time', type=str)
|
|
evaluation_method = ValidateAttr(field='evaluation_method', type=str)
|
|
trend = ValidateAttr(field='trend', type=str)
|
|
|
|
fields_map = {
|
|
"credit_rating": "信用等级",
|
|
"credit_score": "信用评分",
|
|
"evaluation_time": "评价时间",
|
|
"evaluation_method": "评价方式",
|
|
"trend": "变化趋势"
|
|
}
|
|
|
|
cid = ValidateAttr(field='cid', type=str, length=8)
|
|
update_time = ValidateAttr(field='update_time', func=Validate.time_format)
|
|
rid = ValidateAttr(field='rid', type=str, default='')
|
|
name = ValidateAttr(field='name', type=str, default='')
|
|
cc_rating_performance = ValidateAttr(field='cc_rating_performance', type=CCRatingPerformance, default={})
|
|
credit_analysis = ValidateAttr(field='credit_analysis', type=CreditAnalysis, default={})
|
|
index_table = ValidateAttr(field='index_table', type=IndexTable, default={})
|
|
history_level = ValidateAttr(field='history_level', instance_list=RankLevelsInHistory, default=[])
|
|
|
|
fields_map = {
|
|
"cid": "企业ID",
|
|
"update_time": "更新时间",
|
|
"rid": "评价ID",
|
|
"name": "企业名称",
|
|
"cc_rating_performance": "综合信用表现",
|
|
"credit_analysis": "信用分析",
|
|
"index_table": "指标表格",
|
|
"history_level": "历史级别"
|
|
}
|
|
|
|
|
|
class ESGRating(SpecObject):
|
|
"""ESG评价分析"""
|
|
|
|
class ESGLevel(SpecObject):
|
|
"""ESG评级"""
|
|
|
|
esg_level = ValidateAttr(field='esg_level', type=str, in_list=["A", "B", "C", "D", "E"])
|
|
esg_score = ValidateAttr(field='esg_score', type=[int, float])
|
|
industry = ValidateAttr(field='industry', type=str)
|
|
|
|
fields_map = {
|
|
"esg_level": "ESG评级",
|
|
"esg_score": "ESG综合得分",
|
|
"industry": "行业"
|
|
}
|
|
|
|
class FactorsScore(SpecObject):
|
|
"""维度得分"""
|
|
|
|
dimension = ValidateAttr(field='dimension', type=str)
|
|
weight = ValidateAttr(field='weight', type=str)
|
|
score = ValidateAttr(field='score', type=str)
|
|
delta = ValidateAttr(field='delta', type=str)
|
|
industry_average = ValidateAttr(field='industry_average', type=str)
|
|
|
|
fields_map = {
|
|
"dimension": "维度",
|
|
"weight": "权重",
|
|
"score": "公司得分",
|
|
"delta": "得分变化",
|
|
"industry_average": "行业均分"
|
|
}
|
|
|
|
cid = ValidateAttr(field='cid', type=str, length=8)
|
|
update_time = ValidateAttr(field='update_time', func=Validate.time_format)
|
|
rid = ValidateAttr(field='rid', type=str, default='')
|
|
esg_level = ValidateAttr(field='esg_level', type=ESGLevel, default={})
|
|
factors_score = ValidateAttr(field='factors_score', instance_list=FactorsScore, default=[])
|
|
|
|
fields_map = {
|
|
"cid": "企业ID",
|
|
"update_time": "更新日期",
|
|
"rid": "评价ID",
|
|
"esg_level": "ESG评级",
|
|
"factors_score": "维度得分情况"
|
|
}
|
|
|
|
|
|
class FinancialAnalysis(SpecObject):
|
|
"""财务分析"""
|
|
|
|
class CompareToYears(SpecObject):
|
|
"""财务得分年度比较"""
|
|
|
|
class FinancialIndex(SpecObject):
|
|
"""财务指标"""
|
|
profit_ability = ValidateAttr(field='profit_ability', type=[int, float, str])
|
|
asset_quality = ValidateAttr(field='asset_quality', type=[int, float, str])
|
|
debt_risk = ValidateAttr(field='debt_risk', type=[int, float, str])
|
|
business_growth = ValidateAttr(field='business_growth', type=[int, float, str])
|
|
|
|
fields_map = {
|
|
"profit_ability": "盈利能力",
|
|
"asset_quality": "资产质量",
|
|
"debt_risk": "债务风险",
|
|
"business_growth": "经营增长"
|
|
}
|
|
|
|
year = ValidateAttr(field='year', type=str, func=Validate.date_format)
|
|
index = ValidateAttr(field='index', type=FinancialIndex)
|
|
|
|
fields_map = {
|
|
"year": "年度",
|
|
"index": "指标"
|
|
}
|
|
|
|
class CompareToIndustry(SpecObject):
|
|
"""财务得分同行比较"""
|
|
|
|
class FinancialIndex(SpecObject):
|
|
"""财务指标"""
|
|
profit_ability = ValidateAttr(field='profit_ability', type=[int, float, str])
|
|
asset_quality = ValidateAttr(field='asset_quality', type=[int, float, str])
|
|
debt_risk = ValidateAttr(field='debt_risk', type=[int, float, str])
|
|
business_growth = ValidateAttr(field='business_growth', type=[int, float, str])
|
|
|
|
fields_map = {
|
|
"profit_ability": "盈利能力",
|
|
"asset_quality": "资产质量",
|
|
"debt_risk": "债务风险",
|
|
"business_growth": "经营增长"
|
|
}
|
|
|
|
class FinancialAnalysisDetails(SpecObject):
|
|
"""指标详情"""
|
|
name = ValidateAttr(field='name', type=str)
|
|
value = ValidateAttr(field='value', type=[str, float, type(None)])
|
|
quality = ValidateAttr(field='quality', type=str)
|
|
|
|
fields_map = {
|
|
"name": "指标",
|
|
"value": "数值",
|
|
"quality": "水平"
|
|
}
|
|
|
|
company_score = ValidateAttr(field='company_score', type=FinancialIndex)
|
|
average_score = ValidateAttr(field='average_score', type=FinancialIndex)
|
|
|
|
fields_map = {
|
|
"company_score": "公司水平",
|
|
"average_score": "平均水平"
|
|
}
|
|
|
|
cid = ValidateAttr(field='cid', type=str, length=8, default=None)
|
|
update_time = ValidateAttr(field='update_time', func=Validate.time_format)
|
|
rid = ValidateAttr(field='rid', type=str, length=8, default='')
|
|
report_date = ValidateAttr(field='report_date', type=str, func=Validate.date_format, default='')
|
|
compare_to_years = ValidateAttr(field='compare_to_years', length=2, instance_list=CompareToYears, default=[{}, {}])
|
|
compare_to_industry = ValidateAttr(field='compare_to_industry', type=CompareToIndustry, default={})
|
|
delta_to_years = ValidateAttr(field='delta_to_years', type=CompareToYears.FinancialIndex, default={})
|
|
delta_to_industry = ValidateAttr(field='delta_to_industry', type=CompareToIndustry.FinancialIndex, default={})
|
|
index_details = ValidateAttr(field='index_details', instance_list=CompareToIndustry.FinancialAnalysisDetails, default=[{}]*11)
|
|
|
|
fields_map = {
|
|
"cid": "企业ID",
|
|
"update_time": "更新时间",
|
|
"rid": "评价ID",
|
|
"report_date": "财报期",
|
|
"compare_to_years": "财务得分年度比较",
|
|
"compare_to_industry": "财务得分同行比较",
|
|
"delta_to_years": "财务得分较去年变化",
|
|
"delta_to_industry": "财务得分较同行差异",
|
|
"index_details": "指标详情"
|
|
}
|
|
|
|
def dict_to_return(self, **kwargs):
|
|
_dict_ = self.dict_to_show(columns=["更新时间", "财报期", "财务得分年度比较", "财务得分同行比较", "财务得分较去年变化", "财务得分较同行差异", "指标详情"])
|
|
_dict_['财务得分年度比较'] = [{list(item.values())[0]: list(item.values())[1]} for item in _dict_['财务得分年度比较']]
|
|
_dict_['财务得分年度比较'] = {**_dict_['财务得分年度比较'][0], **_dict_['财务得分年度比较'][1]}
|
|
_dict_['指标详情'] = [list(item.values()) for item in _dict_['指标详情']]
|
|
_dict_["同行对比图"] = _dict_.pop('财务得分同行比较')
|
|
_dict_["去年对比图"] = _dict_.pop('财务得分年度比较')
|
|
_dict_["去年对比表"] = _dict_.pop('财务得分较去年变化')
|
|
_dict_["同行对比表"] = _dict_.pop('财务得分较同行差异')
|
|
_dict_['更新日期'] = _dict_.pop('更新时间')
|
|
return _dict_
|
|
|
|
|
|
class Company(SpecObject):
|
|
"""企业"""
|
|
|
|
cid = ValidateAttr(field='cid', type=str, length=8)
|
|
name = ValidateAttr(field='name', type=str)
|
|
industry_l1 = ValidateAttr(field='industry_l1', type=str)
|
|
industry_l2 = ValidateAttr(field='industry_l2', type=str)
|
|
basic_info = ValidateAttr(field='basic_info', type=BasicInfo)
|
|
share_holder = ValidateAttr(field='share_holders', instance_list=ShareHolder)
|
|
main_members = ValidateAttr(field="main_members", instance_list=MainMember)
|
|
cc_rating_result = ValidateAttr(field='cc_rating_result', type=CCRating)
|
|
esg_rating_result = ValidateAttr(field='esg_rating_result', type=ESGRating)
|
|
financial_analysis = ValidateAttr(field="financial_analysis", type=FinancialAnalysis)
|
|
update_time = ValidateAttr(field='update_time', type=dict)
|
|
|
|
fields_map = {
|
|
"cid": "企业ID",
|
|
"name": "企业名称",
|
|
"industry_l1": "一级行业",
|
|
"industry_l2": "二级行业",
|
|
"basic_info": "工商信息",
|
|
"share_holders": "股东信息",
|
|
"main_members": "主要成员",
|
|
"cc_rating_result": "综信评价结果",
|
|
"esg_rating_result": "ESG评价结果",
|
|
"financial_analysis": "财务要素分析",
|
|
"update_time": "更新时间"
|
|
}
|
|
|
|
def get_head_info(self):
|
|
"""头部信息"""
|
|
|
|
def get_basic_info(self):
|
|
"""获取基本工商信息"""
|
|
|
|
def get_industry_analysis(self):
|
|
"""企业主页 行业分析"""
|
|
|
|
def get_cc_rating_result(self):
|
|
"""综合信用评价"""
|
|
|
|
def get_esg_rating_result(self):
|
|
"""ESG评价分析"""
|
|
|
|
def get_financial_analysis(self):
|
|
"""财务要素分析"""
|