from Utils.ObjUtil import SpecObject from Utils.ValidateUtil import ValidateAttr, Validate class BasicBusinessInfo(SpecObject): """基本工商信息""" class BusinessInfo(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=[]) fields_map = { "name": "姓名", "job_title": "职务" } cid = ValidateAttr(field='cid', type=str, length=8) name = ValidateAttr(field='name', type=str) update_time = ValidateAttr(field='update_time', func=Validate.time_format) business_info = ValidateAttr(field="business_info", type=BusinessInfo) share_holder = ValidateAttr(field='share_holder', instance_list=ShareHolder) main_member = ValidateAttr(field='main_member', instance_list=MainMember) fields_map = { "cid": "企业ID", "name": "企业名称", "update_time": "更新时间", "business_info": "工商信息", "share_holder": "股东信息", "main_member": "主要成员" } class BasicFinancialData(SpecObject): """基本财务数据""" class BalanceSheet(SpecObject): """资产负债表""" accounts_receivable = ValidateAttr(field='accounts_receivable', type=[int, float]) stock = ValidateAttr(field='stock', type=[int, float]) total_current_assets = ValidateAttr(field='total_current_assets', type=[int, float]) total_assets = ValidateAttr(field='total_assets', type=[int, float]) short_loan = ValidateAttr(field='short_loan', type=[int, float]) one_year_liabilities = ValidateAttr(field='one_year_liabilities', type=[int, float]) total_current_liabilities = ValidateAttr(field='total_current_liabilities', type=[int, float]) long_term_loan = ValidateAttr(field='long_term_loan', type=[int, float]) total_liabilities = ValidateAttr(field='total_liabilities', type=[int, float]) total_owners_equity = ValidateAttr(field='total_owners_equity', type=[int, float]) fields_map = { 'accounts_receivable': '应收账款', 'stock': '存货', 'total_current_assets': '流动资产合计', 'total_assets': '资产总计', 'short_loan': '短期借款', 'one_year_liabilities': '一年内到期非流动负债', 'total_current_liabilities': '流动负债合计', 'long_term_loan': '长期借款', 'total_liabilities': '负债合计', 'total_owners_equity': '所有者权益合计' } class ProfitSheet(SpecObject): """利润表""" operating_income = ValidateAttr(field='operating_income', type=[int, float]) operating_cost = ValidateAttr(field='operating_cost', type=[int, float]) total_profit = ValidateAttr(field='total_profit', type=[int, float]) net_profit = ValidateAttr(field='net_profit', type=[int, float]) fields_map = { 'operating_income': '营业收入', 'operating_cost': '营业成本', 'total_profit': '利润总额', 'net_profit': '净利润' } class AppendixDataSheet(SpecObject): """补充数据表""" rd_expenses = ValidateAttr(field='rd_expenses', type=[int, float]) interest_disbursement = ValidateAttr(field='interest_disbursement', type=[int, float]) interest_expense = ValidateAttr(field='interest_expense', type=[int, float]) fields_map = { 'rd_expenses': '研发费用', 'interest_disbursement': '计入财务费的利息支出', 'interest_expense': '资本化利息支出' } class FinancialIndex(SpecObject): """财务指标""" roe = ValidateAttr(field="roe", type=[int, float], default=None) inventory_turnover = ValidateAttr(field="inventory_turnover", type=[int, float], default=None) interest_multiple = ValidateAttr(field="interest_multiple", type=[int, float], default=None) accounts_receivable_turnover = ValidateAttr(field="accounts_receivable_turnover", type=[int, float], default=None) total_asset_turnover = ValidateAttr(field="total_asset_turnover", type=[int, float], default=None) total_asset_growth_rate = ValidateAttr(field="total_asset_growth_rate", type=[int, float], default=None) roa = ValidateAttr(field="roa", type=[int, float], default=None) technology_investment_ratio = ValidateAttr(field="technology_investment_ratio", type=[int, float], default=None) operating_growth_rate = ValidateAttr(field="operating_growth_rate", type=[int, float], default=None) assets_and_liabilities = ValidateAttr(field="assets_and_liabilities", type=[int, float], default=None) quick_ratio = ValidateAttr(field="quick_ratio", type=[int, float], default=None) fields_map = { "roe": "净资产收益率", "inventory_turnover": "存货周转率", "interest_multiple": "已获利息倍数", "accounts_receivable_turnover": "应收账款周转率", "total_asset_turnover": "总资产周转率", "total_asset_growth_rate": "总资产增长率", "roa": "总资产报酬率", "technology_investment_ratio": "技术投入比率", "operating_growth_rate": "营业增长率", "assets_and_liabilities": "资产负债率", "quick_ratio": "速动比率" } cid = ValidateAttr(field='cid', type=str, length=8) name = ValidateAttr(field='name', type=str) report_date = ValidateAttr(field='report_date', func=Validate.date_format) balance_sheet = ValidateAttr(field="balance_sheet", type=BalanceSheet) profit_sheet = ValidateAttr(field="profit_sheet", type=ProfitSheet) appendix_data = ValidateAttr(field="appendix_data", type=AppendixDataSheet) financial_index = ValidateAttr(field="financial_index", type=FinancialIndex) fields_map = { "cid": "企业ID", "name": "企业名称", "report_date": "报告期", "balance_sheet": "资产负债表", "profit_sheet": "利润表", "appendix_data": "补充数据表", "financial_index": "财务指标" } class FinancialElementsAnalysis(SpecObject): """财务要素分析""" class FinancialAnalysisDetails(SpecObject): """指标详情""" name = ValidateAttr(field='name', type=str, mark="指标详情-指标") value = ValidateAttr(field='value', type=str, default=None, mark="指标详情-数值") quality = ValidateAttr(field='quality', type=str, mark="指标详情-水平") fields_map = { "name": "指标", "value": "数值", "quality": "水平" } 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": "经营增长" } 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) update_time = ValidateAttr(field='update_time', func=Validate.time_format) rid = ValidateAttr(field='rid', type=str, length=8) report_date = ValidateAttr(field='report_date', type=str, func=Validate.date_format) compare_to_years = ValidateAttr(field='compare_to_years', length=2, instance_list=CompareToYears) compare_to_industry = ValidateAttr(field='compare_to_industry', type=CompareToIndustry) delta_to_years = ValidateAttr(field='delta_to_years', type=CompareToYears.FinancialIndex) delta_to_industry = ValidateAttr(field='delta_to_industry', type=CompareToIndustry.FinancialIndex) index_details = ValidateAttr(field='index_details', instance_list=FinancialAnalysisDetails) fields_map = { "cid": "企业ID", "update_time": "更新时间", "rid": "评价ID", "report_date": "财报期", "compare_to_years": "财务得分年度比较", "compare_to_industry": "财务得分同行比较", "delta_to_years": "财务得分较去年变化", "delta_to_industry": "财务得分较同行差异", "index_details": "指标详情" } class OperatingRiskAnalysis(SpecObject): """经营风险分析""" class InfluenceObj(SpecObject): """影响统计""" name = ValidateAttr(field='name', type=str) total = ValidateAttr(field='total', type=int) influence = ValidateAttr(field='influence', type=str) fields_map = { "name": "类型", "total": "数量", "influence": "影响" } class DetailObj(SpecObject): """详细统计""" name = ValidateAttr(field='name', type=str) total = ValidateAttr(field='total', type=int) detail = ValidateAttr(field='detail', type=list) fields_map = { "name": "类型", "total": "数量", "detail": "详情" } cid = ValidateAttr(field='cid', type=str, length=8) update_time = ValidateAttr(field='update_time', func=Validate.time_format) rid = ValidateAttr(field='rid', type=str, length=8) risk_level = ValidateAttr(field='risk_level', type=str, in_list=['高', '较高', '中等', '警示', '低']) risk_score = ValidateAttr(field='risk_score', type=[int, float]) risk_num = ValidateAttr(field='risk_num', type=int) in_untrustworthy_list = ValidateAttr(field='in_untrustworthy_list', type=str, in_list=["是", "否"]) compliance_risk = ValidateAttr(field='compliance_risk', instance_list=InfluenceObj) operating_risk = ValidateAttr(field='operating_risk', instance_list=InfluenceObj) peripheral_risk = ValidateAttr(field='peripheral_risk', instance_list=DetailObj) change_records = ValidateAttr(field='change_records', instance_list=InfluenceObj) fields_map = { "cid": "企业ID", "update_time": "更新日期", "rid": "评价ID", "risk_level": "风险级别", "risk_score": "风险分数", "risk_num": "风险数量", "in_untrustworthy_list": "列入失信名单", "compliance_risk": "合规风险统计", "operating_risk": "经营风险统计", "peripheral_risk": "周边风险统计", "change_records": "变更记录统计" } class CCRatingAnalysis(SpecObject): """综合信用分析""" class CreditPerformance(SpecObject): """综合信用表现""" class IndicatorRadar(SpecObject): """指标雷达""" class IndexScore(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]) operating_growth = ValidateAttr(field='operating_growth', type=[int, float]) compliance_risk = ValidateAttr(field='compliance_risk', type=[int, float]) operating_risk = ValidateAttr(field='operating_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": "债务风险", "operating_growth": "经营增长", "compliance_risk": "合规风险", "operating_risk": "经营风险", "associated_risk": "关联风险" } class MaxScore(SpecObject): """最大分数""" environment = ValidateAttr(field='environment', type=int) social_responsibility = ValidateAttr(field='social_responsibility', type=int) corporate_governance = ValidateAttr(field='corporate_governance', type=int) profitability = ValidateAttr(field='profitability', type=int) asset_quality = ValidateAttr(field='asset_quality', type=int) debt_risk = ValidateAttr(field='debt_risk', type=int) operating_growth = ValidateAttr(field='operating_growth', type=int) compliance_risk = ValidateAttr(field='compliance_risk', type=int) operating_risk = ValidateAttr(field='operating_risk', type=int) associated_risk = ValidateAttr(field='associated_risk', type=int) fields_map = { "environment": "环境", "social_responsibility": "社会责任", "corporate_governance": "公司治理", "profitability": "盈利能力", "asset_quality": "资产质量", "debt_risk": "债务风险", "operating_growth": "经营增长", "compliance_risk": "合规风险", "operating_risk": "经营风险", "associated_risk": "关联风险" } index_score = ValidateAttr(field='index_score', type=IndexScore) max_score = ValidateAttr(field='max_score', type=MaxScore) fields_map = { "index_score": "指标得分", "max_score": "最大分数" } indicator_radar = ValidateAttr(field='indicator_radar', type=IndicatorRadar) fields_map = { "indicator_radar": "指标雷达" } class CreditAnalysis(SpecObject): """信用分析""" management_analysis = ValidateAttr(field='management_analysis', type=str) finance_analysis = ValidateAttr(field='finance_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": "经营分析", "finance_analysis": "财务分析", "risk_analysis": "风险分析", "evaluation_opinion": "评价意见", "view_report": "查看报告" } class IndexTable(SpecObject): """指标表格""" class FinancialIndicators(SpecObject): """财务指标""" profitability = ValidateAttr(field='profitability', in_list=['优', '良', '中', '低', '差']) asset_quality = ValidateAttr(field='asset_quality', in_list=['优', '良', '中', '低', '差']) debt_risk = ValidateAttr(field='debt_risk', in_list=['优', '良', '中', '低', '差']) operating_growth = ValidateAttr(field='operating_growth', in_list=['优', '良', '中', '低', '差']) fields_map = { "profitability": "盈利能力", "asset_quality": "资产质量", "debt_risk": "债务风险", "operating_growth": "经营增长" } class RiskIndicators(SpecObject): """风险指标""" compliance_risk = ValidateAttr(field='compliance_risk', in_list=['优', '良', '中', '低', '差']) operational_risk = ValidateAttr(field='operational_risk', in_list=['优', '良', '中', '低', '差']) associated_risk = ValidateAttr(field='associated_risk', in_list=['优', '良', '中', '低', '差']) fields_map = { "compliance_risk": "合规风险", "operational_risk": "经营风险", "associated_risk": "关联风险" } class OperatingIndicators(SpecObject): """经营指标""" environmental = ValidateAttr(field='environmental', in_list=['优', '良', '中', '低', '差']) social_responsibility = ValidateAttr(field='social_responsibility', in_list=['优', '良', '中', '低', '差']) corporate_governance = ValidateAttr(field='corporate_governance', in_list=['优', '良', '中', '低', '差']) fields_map = { "environmental": "环境", "social_responsibility": "社会责任", "corporate_governance": "公司治理" } financial_indicators = ValidateAttr(field='financial_indicators', type=FinancialIndicators) risk_indicators = ValidateAttr(field='risk_indicators', type=RiskIndicators) operating_indicators = ValidateAttr(field='operating_indicators', type=OperatingIndicators) fields_map = { "financial_indicators": "财务指标", "risk_indicators": "风险指标", "operating_indicators": "经营指标" } class HistoryLevel(SpecObject): """历史级别""" credit_rating = ValidateAttr(field='credit_rating', type=str) credit_score = ValidateAttr(field='credit_score', type=[float, int]) evaluation_time = ValidateAttr(field='evaluation_time', type=str) evaluation_method = ValidateAttr(field='evaluation_method', type=str, in_list=['企业申报', '主动评价']) change_trend = ValidateAttr(field='change_trend', type=str) fields_map = { "credit_rating": "信用等级", "credit_score": "信用评分", "evaluation_time": "评价时间", "evaluation_method": "评价方式", "change_trend": "变化趋势" } cid = ValidateAttr(field='cid', type=str, length=8) rid = ValidateAttr(field='rid', type=str, length=8) name = ValidateAttr(field='name', type=str) update_time = ValidateAttr(field='update_time', func=Validate.time_format) performance = ValidateAttr(field='performance', type=CreditPerformance) credit_analysis = ValidateAttr(field='credit_analysis', type=CreditAnalysis) index_table = ValidateAttr(field='index_table', type=IndexTable) history_level = ValidateAttr(field='history_level', instance_list=HistoryLevel) fields_map = { "cid": "企业ID", "rid": "评价ID", "name": "企业名称", "update_time": "更新时间", "performance": "综合信用表现", "credit_analysis": "信用分析", "index_table": "指标表格", "history_level": "历史级别" } class ESGRatingAnalysis(SpecObject): """ESG评价分析""" class EsgRating(SpecObject): """ESG评级""" rating = ValidateAttr(field='rating', type=str) score = ValidateAttr(field='score', type=[float, int]) industry = ValidateAttr(field='industry', type=str) fields_map = { "rating": "ESG评级", "score": "ESG综合得分", "industry": "行业" } class DimensionScore(SpecObject): """维度得分情况""" dimension = ValidateAttr(field='dimension', type=str) weights = ValidateAttr(field='weights', type=str) score = ValidateAttr(field='score', type=[float, int], default=None) score_change = ValidateAttr(field='score_change', type=str) industry_average = ValidateAttr(field='industry_average', type=str) fields_map = { "dimension": "维度", "weights": "权重", "score": "公司得分", "score_change": "得分变化", "industry_average": "行业均分" } cid = ValidateAttr(field='cid', type=str, length=8) rid = ValidateAttr(field='rid', type=str, length=8) update_time = ValidateAttr(field='update_time', func=Validate.time_format) esg_rating = ValidateAttr(field='esg_rating', type=EsgRating) dimension_score = ValidateAttr(field='dimension_score', instance_list=DimensionScore) fields_map = { "cid": "企业ID", "rid": "评价ID", "update_time": "更新日期", "esg_rating": "ESG评级", "dimension_score": "维度得分情况" } class RatingRecord(SpecObject): """评价记录""" cid = ValidateAttr(field='cid', type=str, length=8) rid = ValidateAttr(field="rid", type=str, length=8) evaluation_item = ValidateAttr(field="evaluation_item", type=str) in_progress = ValidateAttr(field="in_progress", type=str) rating_result = ValidateAttr(field="rating_result", type=str) report = ValidateAttr(field="report", type=str) certificate = ValidateAttr(field="certificate", type=str) start_filling_time = ValidateAttr(field="start_filling_time", type=str) submission_time = ValidateAttr(field="submission_time", type=str) completion_time = ValidateAttr(field="completion_time", type=str) fields_map = { "cid": "企业ID", "rid": "评价ID", "evaluation_item": "评价项目", "in_progress": "进行状态", "rating_result": "评价结果", "report": "报告", "certificate": "证书", "start_filling_time": "开始填报时间", "submission_time": "提交填报时间", "completion_time": "评价完成时间" } class CompanyDataAssemble(SpecObject): """企业数据_更新汇总""" cid = ValidateAttr(field='cid', type=str, length=8) name = ValidateAttr(field='name', type=str) industry_l1 = ValidateAttr(field='industry_l1', type=str) basic_info = ValidateAttr(field='basic_info', type=BasicBusinessInfo.BusinessInfo) share_holders = ValidateAttr(field='share_holders', instance_list=BasicBusinessInfo.ShareHolder) main_members = ValidateAttr(field="main_members", instance_list=BasicBusinessInfo.MainMember) balance_sheet = ValidateAttr(field='balance_sheet', type=BasicFinancialData.BalanceSheet) profit_sheet = ValidateAttr(field='profit_sheet', type=BasicFinancialData.ProfitSheet) appendix_sheet = ValidateAttr(field='appendix_sheet', type=BasicFinancialData.AppendixDataSheet) fin_index = ValidateAttr(field='fin_index', type=BasicFinancialData.FinancialIndex) cc_rating_result = ValidateAttr(field='cc_rating_result', type=dict) esg_rating_result = ValidateAttr(field='esg_rating_result', type=dict) update_time = ValidateAttr(field='update_time', type=dict) fields_map = { "cid": "企业ID", "name": "企业名称", "industry_l1": "一级行业", "basic_info": "工商信息", "share_holders": "股东信息", "main_members": "主要成员", "balance_sheet": "资产负债表", "profit_sheet": "利润表", "income_sheet": "现金流量表", "appendix_sheet": "财务补充数据", "fin_index": "财务指标", "cc_rating_result": "综信评价结果", "esg_rating_result": "ESG评价结果", "update_time": "更新时间" }