From 5d4e0b8e0bb83e9d6a43fbbc238b31f9f99290d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E6=A3=AE?= Date: Tue, 7 May 2024 08:22:04 +0800 Subject: [PATCH] =?UTF-8?q?changes=20=E6=8A=AB=E9=9C=B2=E8=AF=84=E7=BA=A7?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 2 + .idea/misc.xml | 5 +- .idea/wd-smebiz.iml | 2 +- config/common.dev.ini | 8 +- context/common.py | 3 - mods/rate/mods/rate_serve/router.py | 7 +- mods/rate/mods/rate_serve/utils.py | 2 +- .../company_rate/rate_utils/utils.py | 128 +++----- mods/smebiz_rate/company_rate/router.py | 2 +- mods/user/mods/auth_rule/schemas.py | 3 +- static/model.json | 66 ++++ utils/api_data_utils.py | 281 +++++++++--------- 12 files changed, 277 insertions(+), 232 deletions(-) diff --git a/.idea/.gitignore b/.idea/.gitignore index 359bb53..872fe36 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -1,3 +1,5 @@ # 默认忽略的文件 /shelf/ /workspace.xml +# GitHub Copilot persisted chat sessions +/copilot/chatSessions diff --git a/.idea/misc.xml b/.idea/misc.xml index 1e5facf..64e0820 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,7 @@ - + + + \ No newline at end of file diff --git a/.idea/wd-smebiz.iml b/.idea/wd-smebiz.iml index b4ef2a2..78582cc 100644 --- a/.idea/wd-smebiz.iml +++ b/.idea/wd-smebiz.iml @@ -6,7 +6,7 @@ - + diff --git a/config/common.dev.ini b/config/common.dev.ini index dcf3456..dbc3a4c 100644 --- a/config/common.dev.ini +++ b/config/common.dev.ini @@ -2,21 +2,21 @@ host = 127.0.0.1 post = 3306 user = root -password = 12345 +password = 123456 db = wd_smebiz [postgresql] host = 127.0.0.1 post = 5432 user = postgres -password = 12345 +password = 950920 db = wd_smebiz [postgresql_v2] host = 127.0.0.1 post = 5432 user = postgres -password = 12345 +password = 950920 db = wd_smebiz_v2 [redis] @@ -59,7 +59,7 @@ sys_name = wd-smebiz ;host = https://testapi.fecribd.com [tianyancha] -token = 32737167-cb63-4ce9-9397-d66169488f51 +token = f87e79d5-f74e-4df9-91b2-f27a5c7ee63a [yujingtong] token = 92229502BD4C4B3E934607D4C1C5E711 diff --git a/context/common.py b/context/common.py index ceb1fba..d66370c 100644 --- a/context/common.py +++ b/context/common.py @@ -30,9 +30,6 @@ conf.read(Path(__file__).parent.parent / 'config' / f'common{"." + start_model i encoding='utf-8-sig') - - - class CompanyUserTokenDataModel(BaseModel): id: Optional[str] company_id: Optional[str] diff --git a/mods/rate/mods/rate_serve/router.py b/mods/rate/mods/rate_serve/router.py index cd672a1..dfbe0b2 100644 --- a/mods/rate/mods/rate_serve/router.py +++ b/mods/rate/mods/rate_serve/router.py @@ -13,6 +13,7 @@ from .utils import RateServeFlow, get_node_if_not_finished, RateUtils, get_node from ...models import RateDataPreparationNode, RateServe, RateWorkNode, ReportWorkNode, CertWorkNode from ...schemas import NodeState, RateServeState from fastapi import UploadFile as FastApiUploadFile, Form + router = APIRouter(tags=["评级服务"], prefix='') @@ -225,10 +226,10 @@ def make_cert(db: Session = Depends(get_db)): RateServe.status == RateServeState.rating).count() publish = 0 published = 0 - work_days = [(item.finish_time-item.create_time).total_seconds()/24/60/60 for item in db.query( - RateServe).filter(RateServe.finish_time > (datetime.now()-timedelta(days=15)))] + work_days = [(item.finish_time - item.create_time).total_seconds() / 24 / 60 / 60 for item in db.query( + RateServe).filter(RateServe.finish_time > (datetime.now() - timedelta(days=15)))] average_work_day = round( - sum(work_days)/len(work_days), 1) if work_days else 0 + sum(work_days) / len(work_days), 1) if work_days else 0 return { "examining": examining, "rating": rating, diff --git a/mods/rate/mods/rate_serve/utils.py b/mods/rate/mods/rate_serve/utils.py index 7e3b978..5fad542 100644 --- a/mods/rate/mods/rate_serve/utils.py +++ b/mods/rate/mods/rate_serve/utils.py @@ -468,6 +468,7 @@ class RateUtils: 产品信息, _ = tianyancha_api.get("产品信息", {"keyword": company_name}) 资质证书, _ = tianyancha_api.get("资质证书", {"name": company_name}) 股权结构图, _ = tianyancha_api.get("股权结构图", {"keyword": company_name}) + 高管构成, _ = tianyancha_api.get("高管信息", {"keyword": company_name}) 知识产权, _ = tianyancha_api.get("知识产权", {"keyword": company_name}) 供应商, _ = tianyancha_api.get("供应商", {"keyword": company_name}) 企业招投标信息, _ = tianyancha_api.get("企业招投标信息", {"keyword": company_name}, page=1) @@ -529,7 +530,6 @@ class RateUtils: "专科占比": str(int(business["专科及以下人员人数"] / business["年末员工总数"] * 100)) + '%', "合计人数": str(business["年末员工总数"]), "合计占比": "100%", - "高管构成": "--", "人民币开户银行名称": business["人民币开户银行名称"], "人民币开户银行账号": business["人民币开户银行账号"], "外币开户银行名称": business["外币开户银行名称"], diff --git a/mods/smebiz_rate/company_rate/rate_utils/utils.py b/mods/smebiz_rate/company_rate/rate_utils/utils.py index 9e65abb..78dce82 100644 --- a/mods/smebiz_rate/company_rate/rate_utils/utils.py +++ b/mods/smebiz_rate/company_rate/rate_utils/utils.py @@ -44,7 +44,7 @@ def load_question_excel(excel_path): # Load “经营问卷” data from Excel business_data = pd.read_excel(excel_path, sheet_name="经营问卷") business_data = business_data.where(pd.notna(business_data), None) - business_dict = {row["问题"]: row["填写(文本类无则不填写)"] for _, row in business_data.iterrows()} + business_dict = {row["问题"]: row["填写"] for _, row in business_data.iterrows()} business_type = {row["问题"]: row["类型"] for _, row in business_data.iterrows()} for k, v in business_dict.items(): if pd.isna(v): @@ -57,9 +57,9 @@ def load_question_excel(excel_path): finance_data = finance_data.where(pd.notna(finance_data), None) # Convert multi-year data into a nested dictionary format finance_report_dict = { - "2020年": {}, "2021年": {}, "2022年": {}, + "2023年": {}, } report = None for i, item in enumerate(finance_data['报表']): @@ -67,7 +67,7 @@ def load_question_excel(excel_path): if item in ["单位"]: continue if item in ["是否审计", "会计事务所"]: - finance_report_dict[item] = nan_to_none(finance_data['科目'][i]) + finance_report_dict[item] = nan_to_none(finance_data['2023年'][i]) continue if item is not None: @@ -82,9 +82,9 @@ def load_question_excel(excel_path): # "2022年": nan_to_none(finance_data['2022年'][i]), # } if subject: - finance_report_dict["2020年"][subject] = nan_to_none(finance_data['2020年'][i]) finance_report_dict["2021年"][subject] = nan_to_none(finance_data['2021年'][i]) finance_report_dict["2022年"][subject] = nan_to_none(finance_data['2022年'][i]) + finance_report_dict["2023年"][subject] = nan_to_none(finance_data['2023年'][i]) if pd.isna(subject): continue @@ -242,6 +242,7 @@ def load_report_need_data(db: Session, rate_id): 财务问卷 = json.loads(item.man_data)['财务问卷'] rate_res: RateRes = JsDict(json.loads(item.rate_data)) company_name = item.company_name + 高管构成, _ = tianyancha_api.get("高管信息", {"keyword": company_name}) 工商信息, _ = tianyancha_api.get("工商信息", {"keyword": company_name}) if not 工商信息: raise HTTPException(status_code=404, detail="无公司数据") @@ -251,38 +252,6 @@ def load_report_need_data(db: Session, rate_id): 知识产权, _ = tianyancha_api.get("知识产权", {"keyword": company_name}) 供应商, _ = tianyancha_api.get("供应商", {"keyword": company_name}) 企业招投标信息, _ = tianyancha_api.get("企业招投标信息", {"keyword": company_name}, page=1) - # data = { - # "企业中文名称": company_name, - # "所属国民经济行业": 工商信息['industry'], - # "英文名称": 工商信息['property3'], - # "工商注册号": 工商信息['regNumber'], - # "组织机构代码": 工商信息['orgNumber'], - # "统一社会信用代码": 工商信息['creditCode'], - # "注册资本": 工商信息['regCapital'], - # "企业类型": 工商信息['companyOrgType'], - # "注册地址": 工商信息['regLocation'], - # "成立日期": 工商信息['estiblishTime'], - # "核准日期": 工商信息['approvedTime'], - # "营业期限终止日期": '', - # "法定代表人": 工商信息['punishList'][0]['legalPersonName'] if 工商信息['punishList'] else '', - # "经营地址": '', - # "邮政编码": 工商信息['reportList'][0]['postcode'] if 工商信息['reportList'] else '', - # "联系电话": 工商信息['reportList'][0]['phoneNumber'] if 工商信息['reportList'] else '', - # "传真号码": 工商信息['reportList'][0]['phoneNumber'] if 工商信息['reportList'] else '', - # "电子邮箱": 工商信息['reportList'][0]['email'] if 工商信息['reportList'] else '', - # "企业网址": '', - # "经营范围": 工商信息['businessScope'], - # "主要产品": '', - # "历史沿革": '', - # "股权结构": '', - # "高管构成": '', - # "企业资质": '', - # "企业商标": '', - # "企业专利": '', - # "企业软件著作权": '', - # "企业供应商": '', - # "企业招投标情况": '' - # } data = { "企业名称": company_name, "年份": f"{num_to_chinese(datetime.now().year)[-2:]}", @@ -338,7 +307,7 @@ def load_report_need_data(db: Session, rate_id): "专科占比": str(int(man_data["专科及以下人员人数"] / man_data["年末员工总数"] * 100)) + '%', "合计人数": str(man_data["年末员工总数"]), "合计占比": "100%", - "高管构成": "--", + "高管构成": 高管构成.get('result') if 高管构成 else '-', "人民币开户银行名称": man_data["人民币开户银行名称"], "人民币开户银行账号": man_data["人民币开户银行账号"], "外币开户银行名称": man_data["外币开户银行名称"], @@ -395,9 +364,9 @@ def load_report_need_data(db: Session, rate_id): } for item in 企业招投标信息 ][0:30] if 企业招投标信息 else [], "主要财务数据": { + "2023年": 财务问卷['2023年'], "2022年": 财务问卷['2022年'], "2021年": 财务问卷['2021年'], - "2020年": 财务问卷['2020年'], } } @@ -463,7 +432,7 @@ def pre_process_data(经营问卷, 财务问卷, 背调接口): "背调接口": 背调接口 } - for key in ["2022年", "2021年", "2020年"]: + for key in ["2023年", "2022年", "2021年"]: for item in 财务问卷[key]: if not data['财务问卷'].get(item): data['财务问卷'][item] = [] @@ -479,7 +448,7 @@ def sme_rate_interface(data): 打分 """ res = rq.post(f'{conf["rate_utils"]["host"]}/api/model_score/model_score_reusult', json.dumps( - data), timeout=8) + data)) data = res.json() radar_data = make_radar_data(data) data['radar_data'] = radar_data @@ -494,7 +463,45 @@ def sme_rate_interface(data): def make_radar_data(rate_data): radar = { - "财务状况": [ + "综合素质": [ + "高管平均从业年限", + "管理制度文件类别数", + "管理人员比例", + "近三年股东变更次数", + "股东性质", + "董事会情况", + "监事会情况", + "专业委员会数量", + "经营年限" + ], + "企业管理": [ + "设置有财务管理制度", + "财务报表审计状态", + "因公伤亡人次", + "发生过客户隐私泄露", + "产品退回率", + "员工离职率", + "员工每周工作时长", + "培训人数占比" + ], + "社会责任": [ + "纳税信用等级", + "欠税公告", + "税收违法", + "服务投诉率", + "投诉响应时间", + "投诉解决率", + "经营异常", + "双随机抽查结果", + "行政处罚(警告、通报批评、罚款)", + "负面舆情占比", + "行政处罚(没收违法所得、没收非法财务...)", + "严重违法", + "开庭公告(被告-合同纠纷、劳动争议)", + "被执行人", + "失信被执行人" + ], + "效绩财务能力": [ "营业收入", "净利率", "资产负债率", @@ -504,45 +511,6 @@ def make_radar_data(rate_data): "总资产周转次数", "资产总额", "股东支持力度" - ], - "经营能力": [ - "经营异常", - "双随机抽查结果", - "行政处罚(警告、通报批评、罚款)", - "负面舆情占比", - "高管平均从业年限", - "经营年限" - ], - "内部治理": [ - "管理制度文件类别数", - "管理人员比例", - "近三年股东变更次数", - "股东性质", - "董事会情况", - "监事会情况", - "设置有财务管理制度", - "财务报表审计状态" - ], - "社会责任": [ - "因公伤亡人次", - "发生过客户隐私泄露", - "产品退回率", - "员工离职率", - "员工每周工作时长", - "培训人数占比", - "服务投诉率", - "投诉响应时间", - "投诉解决率", - ], - "守法守规": [ - "被执行人", - "失信被执行人", - "纳税信用等级", - "欠税公告", - "税收违法", - "行政处罚(没收违法所得、没收非法财务...)", - "严重违法", - "开庭公告(被告-合同纠纷、劳动争议)" ] } index_dic = {item['指标']: {"scope": item['得分'], "weight": item['权重']} for item in diff --git a/mods/smebiz_rate/company_rate/router.py b/mods/smebiz_rate/company_rate/router.py index 66e97b9..77fe7ca 100644 --- a/mods/smebiz_rate/company_rate/router.py +++ b/mods/smebiz_rate/company_rate/router.py @@ -172,7 +172,7 @@ def get_report(req: schemas.GetReport, db: Session = Depends(common_db.get_db), data = load_report_need_data(db, req.id) json.dump(data, open('ttt.json', 'w', encoding='utf-8'), ensure_ascii=False) response = requests.post(f'{conf["rate_utils"]["host"]}/api/report_generation/generation', json.dumps( - data), timeout=15) + data)) # print(response.json()) return Response(content=response.content, headers=dict(response.headers)) diff --git a/mods/user/mods/auth_rule/schemas.py b/mods/user/mods/auth_rule/schemas.py index 049028a..05cdce4 100644 --- a/mods/user/mods/auth_rule/schemas.py +++ b/mods/user/mods/auth_rule/schemas.py @@ -14,7 +14,8 @@ class AuthRuleAdd(BaseModel): category: str -class AuthRuleAddOptional(AuthRuleAdd, metaclass=AllOptional): pass +class AuthRuleAddOptional(AuthRuleAdd, metaclass=AllOptional): + pass class AuthRuleInfo(AuthRuleId, AuthRuleAddOptional): diff --git a/static/model.json b/static/model.json index 064cc98..ed8c269 100644 --- a/static/model.json +++ b/static/model.json @@ -87,6 +87,72 @@ "type": "int", "unit": "人" }, + { + "name": "专业委员会名称", + "key": "专业委员会名称", + "type": "string", + "unit": "-" + }, + { + "name": "专业委员会数量", + "key": "专业委员会数量", + "type": "int", + "unit": "个" + }, + { + "name": "生产人员人数", + "key": "生产人员人数", + "type": "int", + "unit": "人" + }, + { + "name": "拥有投融资管理制度", + "key": "拥有投融资管理制度", + "type": "enum", + "config": { + "options": [ + "是", + "否" + ] + }, + "unit": "-" + }, + { + "name": "拥有信息披露制度", + "key": "拥有信息披露制度", + "type": "enum", + "config": { + "options": [ + "是", + "否" + ] + }, + "unit": "-" + }, + { + "name": "拥有合规管理制度", + "key": "拥有合规管理制度", + "type": "enum", + "config": { + "options": [ + "是", + "否" + ] + }, + "unit": "-" + }, + { + "name": "拥有数据管理制度", + "key": "拥有数据管理制度", + "type": "enum", + "config": { + "options": [ + "是", + "否" + ] + }, + "unit": "-" + }, { "name": "年度公司股东或关联方给予公司的资金支持金额", "key": "年度公司股东或关联方给予公司的资金支持金额", diff --git a/utils/api_data_utils.py b/utils/api_data_utils.py index 09f8bce..4dc0e9c 100644 --- a/utils/api_data_utils.py +++ b/utils/api_data_utils.py @@ -41,143 +41,150 @@ error_code_dic = { } api_config = { - "股权变更": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/ic/holderChange/2.0" - }, - # 注意参数是name - "新闻舆情": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/ps/news/2.0" - }, - "司法风险": { - "type": "dict", - "url": "http://open.api.tianyancha.com/services/open/cb/judicial/2.0" - }, - "司法解析": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/jr/judicialCase/2.0" - }, - "资质证书": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/m/certificate/2.0" - }, - "历史经营异常": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/hi/abnormal/2.0" - }, - "双随机抽查": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/m/doubleRandomCheck/2.0" - }, - "双随机抽查详情": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/m/doubleRandomCheckDetail/2.0" - }, - "重要股东质押": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/mr/stockPledge/shareholder/2.0" - }, - "重要股东质押详情": { - "type": "dict", - "url": "http://open.api.tianyancha.com/services/open/mr/stockPledge/shareholder/detail/2.0" - }, - "破产重整": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/jr/bankruptcy/2.0" - }, - "司法拍卖": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/mr/judicialSale/3.0" - }, - "企业基本信息": { - "type": "dict", - "url": "https://open.api.tianyancha.com/services/open/ic/baseinfo/normal" - }, - "企业专利信息": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/ipr/patents/3.0" - }, - "知识产权出质": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/v4/open/getPledgeReg" - }, "知识产权": { - "type": "dict", - "url": "http://open.api.tianyancha.com/services/open/cb/ipr/3.0" - }, - "税务评级": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/m/taxCredit/2.0" - }, - "进出口信用": { - "type": "dict", - "url": "http://open.api.tianyancha.com/services/open/m/importAndExport/2.0" - }, - "税收违法": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/mr/taxContravention/2.0" - }, - "欠税公告": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/mr/ownTax/2.0" - }, - "行政许可": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/m/getAdministrativeLicense/2.0" - }, - "行政处罚": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/mr/punishmentInfo/3.0" - }, - "经营异常": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/mr/abnormal/2.0" - }, - "严重违法": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/mr/illegalinfo/2.0" - }, - "终本案件": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/jr/endCase/2.0" - }, - "失信被执行人": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/v4/open/human/dishonest" - }, - "被执行人": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/jr/zhixinginfo/2.0" - }, - "限制消费令": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/jr/consumptionRestriction/2.0" - }, - "质押比例": { - "type": "dict", - "url": "http://open.api.tianyancha.com/services/open/mr/stockPledge/ratio/2.0" - }, - "企业三要素": { - "type": "dict", - "url": "http://open.api.tianyancha.com/services/open/ic/verify/2.0" - }, - "工商信息": { - "type": "dict", - "url": "http://open.api.tianyancha.com/services/open/cb/ic/2.0" - }, - "产品信息": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/m/appbkInfo/2.0" - }, "股权结构图": { - "type": "dict", - "url": "http://open.api.tianyancha.com/services/v4/open/equityRatio" - }, "供应商": { - "type": "dict", - "url": "http://open.api.tianyancha.com/services/open/m/supply/2.0" - }, "企业招投标信息": { - "type": "list", - "url": "http://open.api.tianyancha.com/services/open/m/bids/2.0" - }, + "股权变更": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/ic/holderChange/2.0" + }, + "新闻舆情": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/ps/news/2.0" + }, + "司法风险": { + "type": "dict", + "url": "http://open.api.tianyancha.com/services/open/cb/judicial/2.0" + }, + "司法解析": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/jr/judicialCase/2.0" + }, + "资质证书": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/m/certificate/2.0" + }, + "历史经营异常": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/hi/abnormal/2.0" + }, + "双随机抽查": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/m/doubleRandomCheck/2.0" + }, + "双随机抽查详情": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/m/doubleRandomCheckDetail/2.0" + }, + "重要股东质押": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/mr/stockPledge/shareholder/2.0" + }, + "重要股东质押详情": { + "type": "dict", + "url": "http://open.api.tianyancha.com/services/open/mr/stockPledge/shareholder/detail/2.0" + }, + "破产重整": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/jr/bankruptcy/2.0" + }, + "司法拍卖": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/mr/judicialSale/3.0" + }, + "企业基本信息": { + "type": "dict", + "url": "https://open.api.tianyancha.com/services/open/ic/baseinfo/normal" + }, + "企业专利信息": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/ipr/patents/3.0" + }, + "知识产权出质": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/v4/open/getPledgeReg" + }, + "知识产权": { + "type": "dict", + "url": "http://open.api.tianyancha.com/services/open/cb/ipr/3.0" + }, + "税务评级": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/m/taxCredit/2.0" + }, + "进出口信用": { + "type": "dict", + "url": "http://open.api.tianyancha.com/services/open/m/importAndExport/2.0" + }, + "税收违法": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/mr/taxContravention/2.0" + }, + "欠税公告": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/mr/ownTax/2.0" + }, + "行政许可": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/m/getAdministrativeLicense/2.0" + }, + "行政处罚": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/mr/punishmentInfo/3.0" + }, + "经营异常": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/mr/abnormal/2.0" + }, + "严重违法": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/mr/illegalinfo/2.0" + }, + "终本案件": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/jr/endCase/2.0" + }, + "失信被执行人": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/v4/open/human/dishonest" + }, + "被执行人": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/jr/zhixinginfo/2.0" + }, + "限制消费令": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/jr/consumptionRestriction/2.0" + }, + "质押比例": { + "type": "dict", + "url": "http://open.api.tianyancha.com/services/open/mr/stockPledge/ratio/2.0" + }, + "企业三要素": { + "type": "dict", + "url": "http://open.api.tianyancha.com/services/open/ic/verify/2.0" + }, + "工商信息": { + "type": "dict", + "url": "http://open.api.tianyancha.com/services/open/cb/ic/2.0" + }, + "产品信息": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/m/appbkInfo/2.0" + }, + "股权结构图": { + "type": "dict", + "url": "http://open.api.tianyancha.com/services/v4/open/equityRatio" + }, + "供应商": { + "type": "dict", + "url": "http://open.api.tianyancha.com/services/open/m/supply/2.0" + }, + "企业招投标信息": { + "type": "list", + "url": "http://open.api.tianyancha.com/services/open/m/bids/2.0" + }, + "高管信息": { + "type": "dict", + "url": "http://open.api.tianyancha.com/services/open/pf/boss/2.0" + } }