修改gitignore
This commit is contained in:
parent
3fceead676
commit
c1da10a18c
|
@ -1,4 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (wd-smebiz)" project-jdk-type="Python SDK" />
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (wd-smebiz)" project-jdk-type="Python SDK" />
|
||||
</project>
|
|
@ -20,6 +20,7 @@ services:
|
|||
- TZ=Asia/Shanghai
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
|
||||
db:
|
||||
image: postgres
|
||||
|
@ -33,7 +34,16 @@ services:
|
|||
- postgres_data:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432" # Map PostgreSQL port 5432 to host port 5432
|
||||
|
||||
redis:
|
||||
image: redis:latest
|
||||
command: ["redis-server", "--appendonly", "yes"]
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
ports:
|
||||
- "6379:6379"
|
||||
networks:
|
||||
- app
|
||||
-
|
||||
networks:
|
||||
app:
|
||||
external: true
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
from fastapi import APIRouter
|
||||
|
||||
from .user.router import router as user_router
|
||||
from .cmebiz_rate.router import router as cmebiz_rate_router
|
||||
from .smebiz_rate.router import router as smebiz_rate_router
|
||||
|
||||
router = APIRouter(prefix="")
|
||||
router.include_router(user_router)
|
||||
router.include_router(cmebiz_rate_router)
|
||||
router.include_router(smebiz_rate_router)
|
||||
|
|
|
@ -12,7 +12,8 @@ from . import schemas
|
|||
from .models import CompanyRate
|
||||
from ..form_file import crud as FormFileCrud
|
||||
from .pytypes.BjRateRes import BjRateRes
|
||||
from .utils import load_api_data, excel_data_to_model_data_bj, cal_tiaozhengxiang
|
||||
from .utils import excel_data_to_model_data_bj, cal_tiaozhengxiang
|
||||
from .rate_utils.utils import load_api_data
|
||||
|
||||
bj_model_dict = {}
|
||||
man_data_dict = {}
|
||||
|
@ -133,7 +134,8 @@ def parse_file_data_to_db(db: Session, item_id):
|
|||
def load_api_data_to_db(db: Session, item_id):
|
||||
item = company_rate_get(db, item_id)
|
||||
if item:
|
||||
item.api_data = json.dumps(load_api_data(item.company_name, json.loads(item.wj_data) if item.wj_data else {}))
|
||||
# item.api_data = json.dumps(load_api_data(item.company_name, json.loads(item.wj_data) if item.wj_data else {}))
|
||||
item.api_data = json.dumps(load_api_data(item.company_name))
|
||||
marge_data_by_item(db, item)
|
||||
db.commit()
|
||||
db.refresh(item)
|
|
@ -0,0 +1,94 @@
|
|||
API_DATA_COLUMNS = [
|
||||
"成立年限",
|
||||
"公司类型",
|
||||
"近三年股东变更次数",
|
||||
"最近10条企业舆情负面占比",
|
||||
"开庭公告(被告-合同纠纷、劳动争议)",
|
||||
"纳税信用等级",
|
||||
"双随机抽查结果",
|
||||
"经营异常",
|
||||
"欠税公告",
|
||||
"行政处罚(警告、通报批评、罚款)",
|
||||
"行政处罚(没收违法所得、没收非法财务...)",
|
||||
"被执行人",
|
||||
"失信被执行人",
|
||||
"税收违法",
|
||||
"严重违法",
|
||||
# 报告所需字段
|
||||
"企业中文名称",
|
||||
"所属国民经济行业",
|
||||
"英文名称",
|
||||
"工商注册号",
|
||||
"组织机构代码",
|
||||
"统一社会信用代码",
|
||||
"注册资本",
|
||||
"企业类型",
|
||||
"注册地址",
|
||||
"成立日期",
|
||||
"核准日期",
|
||||
"营业期限终止日期",
|
||||
"法定代表人",
|
||||
"经营地址",
|
||||
"邮政编码",
|
||||
"联系电话",
|
||||
"传真号码",
|
||||
"电子邮箱",
|
||||
"企业网址",
|
||||
"经营范围",
|
||||
"主要产品",
|
||||
"历史沿革",
|
||||
"股权结构",
|
||||
"高管构成",
|
||||
"企业资质",
|
||||
"企业商标",
|
||||
"企业专利",
|
||||
"企业软件著作权",
|
||||
"企业供应商",
|
||||
"企业招投标情况",
|
||||
]
|
||||
|
||||
劳动仲裁案由 = ["劳动争议", "劳动合同纠纷", "确认劳动关系纠纷", "集体合同纠纷", "劳务派遣合同纠纷",
|
||||
"非全日制用工纠纷", "追索劳动报酬纠纷", "经济补偿金纠纷", "竞业限制纠纷", "社会保险纠纷",
|
||||
"养老保险待遇纠纷", "工伤保险待遇纠纷", "医疗保险待遇纠纷", "生育保险待遇纠纷", "失业保险待遇纠纷",
|
||||
"福利待遇纠纷"]
|
||||
合同纠纷案由 = ["合同纠纷", "缔约过失责任纠纷", "预约合同纠纷", "确认合同效力纠纷", "确认合同有效纠纷",
|
||||
"确认合同无效纠纷", "债权人代位权纠纷", "债权人撤销权纠纷", "债权转让合同纠纷", "债务转移合同纠纷",
|
||||
"债权债务概括转移合同纠纷", "债务加入纠纷", "悬赏广告纠纷", "买卖合同纠纷", "分期付款买卖合同纠纷",
|
||||
"凭样品买卖合同纠纷", "试用买卖合同纠纷", "所有权保留买卖合同纠纷", "招标投标买卖合同纠纷",
|
||||
"互易纠纷", "国际货物买卖合同纠纷", "信息网络买卖合同纠纷", "拍卖合同纠纷",
|
||||
"建设用地使用权合同纠纷", "建设用地使用权出让合同纠纷", "建设用地使用权转让合同纠纷",
|
||||
"临时用地合同纠纷", "探矿权转让合同纠纷", "采矿权转让合同纠纷", "房地产开发经营合同纠纷",
|
||||
"委托代建合同纠纷", "合资、合作开发房地产合同纠纷", "项目转让合同纠纷", "房屋买卖合同纠纷",
|
||||
"商品房预约合同纠纷", "商品房预售合同纠纷", "商品房销售合同纠纷", "商品房委托代理销售合同纠纷",
|
||||
"经济适用房转让合同纠纷", "农村房屋买卖合同纠纷", "民事主体间房屋拆迁补偿合同纠纷",
|
||||
"供用电合同纠纷", "供用水合同纠纷", "供用气合同纠纷", "供用热力合同纠纷", "排污权交易纠纷",
|
||||
"用能权交易纠纷", "用水权交易纠纷", "碳排放权交易纠纷", "碳汇交易纠纷", "赠与合同纠纷",
|
||||
"公益事业捐赠合同纠纷", "附义务赠与合同纠纷", "借款合同纠纷", "金融借款合同纠纷", "同业拆借纠纷",
|
||||
"民间借贷纠纷", "小额借款合同纠纷", "金融不良债权转让合同纠纷", "金融不良债权追偿纠纷",
|
||||
"保证合同纠纷", "抵押合同纠纷", "质押合同纠纷", "定金合同纠纷", "进出口押汇纠纷",
|
||||
"储蓄存款合同纠纷", "银行卡纠纷", "借记卡纠纷", "信用卡纠纷", "租赁合同纠纷", "土地租赁合同纠纷",
|
||||
"房屋租赁合同纠纷", "车辆租赁合同纠纷", "建筑设备租赁合同纠纷", "融资租赁合同纠纷", "保理合同纠纷",
|
||||
"承揽合同纠纷", "加工合同纠纷", "定作合同纠纷", "修理合同纠纷", "复制合同纠纷", "测试合同纠纷",
|
||||
"检验合同纠纷", "铁路机车、车辆建造合同纠纷", "建设工程合同纠纷", "建设工程勘察合同纠纷",
|
||||
"建设工程设计合同纠纷", "建设工程施工合同纠纷", "建设工程价款优先受偿权纠纷",
|
||||
"建设工程分包合同纠纷", "建设工程监理合同纠纷", "装饰装修合同纠纷", "铁路修建合同纠纷",
|
||||
"农村建房施工合同纠纷", "运输合同纠纷", "公路旅客运输合同纠纷", "公路货物运输合同纠纷",
|
||||
"水路旅客运输合同纠纷", "水路货物运输合同纠纷", "航空旅客运输合同纠纷", "航空货物运输合同纠纷",
|
||||
"出租汽车运输合同纠纷", "管道运输合同纠纷", "城市公交运输合同纠纷", "联合运输合同纠纷",
|
||||
"多式联运合同纠纷", "铁路货物运输合同纠纷", "铁路旅客运输合同纠纷", "铁路行李运输合同纠纷",
|
||||
"铁路包裹运输合同纠纷", "国际铁路联运合同纠纷", "保管合同纠纷", "仓储合同纠纷", "委托合同纠纷",
|
||||
"进出口代理合同纠纷", "货运代理合同纠纷", "民用航空运输销售代理合同纠纷",
|
||||
"诉讼、仲裁、人民调解代理合同纠纷", "销售代理合同纠纷", "委托理财合同纠纷", "金融委托理财合同纠纷",
|
||||
"民间委托理财合同纠纷", "物业服务合同纠纷", "行纪合同纠纷", "中介合同纠纷", "补偿贸易纠纷",
|
||||
"借用合同纠纷", "典当纠纷", "合伙合同纠纷", "种植、养殖回收合同纠纷", "彩票、奖券纠纷",
|
||||
"中外合作勘探开发自然资源合同纠纷", "农业承包合同纠纷", "林业承包合同纠纷", "渔业承包合同纠纷",
|
||||
"牧业承包合同纠纷", "土地承包经营权合同纠纷", "土地承包经营权转让合同纠纷",
|
||||
"土地承包经营权互换合同纠纷", "土地经营权入股合同纠纷", "土地经营权抵押合同纠纷",
|
||||
"土地经营权出租合同纠纷", "居住权合同纠纷", "服务合同纠纷", "电信服务合同纠纷", "邮政服务合同纠纷",
|
||||
"快递服务合同纠纷", "医疗服务合同纠纷", "法律服务合同纠纷", "旅游合同纠纷", "房地产咨询合同纠纷",
|
||||
"房地产价格评估合同纠纷", "旅店服务合同纠纷", "财会服务合同纠纷", "餐饮服务合同纠纷",
|
||||
"娱乐服务合同纠纷", "有线电视服务合同纠纷", "网络服务合同纠纷", "教育培训合同纠纷",
|
||||
"家政服务合同纠纷", "庆典服务合同纠纷", "殡葬服务合同纠纷", "农业技术服务合同纠纷",
|
||||
"农机作业服务合同纠纷", "保安服务合同纠纷", "银行结算合同纠纷", "演出合同纠纷", "劳务合同纠纷",
|
||||
"离退休人员返聘合同纠纷", "广告合同纠纷", "展览合同纠纷", "追偿权纠纷", "居间合同纠纷",
|
||||
"农村土地承包合同纠纷", "合伙协议纠纷", "房屋拆迁安置补偿合同纠纷"]
|
|
@ -0,0 +1,90 @@
|
|||
from datetime import datetime
|
||||
|
||||
from context.common import tianyancha_api
|
||||
from mods.smebiz_rate.company_rate.rate_utils.config import 合同纠纷案由, 劳动仲裁案由
|
||||
|
||||
|
||||
def filter_bg(data: [], company_name):
|
||||
new_data = []
|
||||
for item in data:
|
||||
add = False
|
||||
for i in item['defendant']:
|
||||
if company_name in i['name']:
|
||||
add = True
|
||||
if add:
|
||||
new_data.append(item)
|
||||
|
||||
return new_data
|
||||
|
||||
|
||||
def load_api_data(company_name):
|
||||
司法风险, _ = tianyancha_api.get("司法风险", {"keyword": company_name})
|
||||
# 资质证书, 资质证书数量 = tianyancha_api.get("资质证书", {"keyword": company_name})
|
||||
# 历史经营异常数量 = tianyancha_api.get_total("历史经营异常", {"keyword": company_name})
|
||||
双随机抽查, 双随机抽查数量 = tianyancha_api.get("双随机抽查", {"keyword": company_name})
|
||||
双随机抽查详情 = [tianyancha_api.get("双随机抽查详情", {"businessId": item['taskList'][0]['businessId']})[0] for
|
||||
item in 双随机抽查]
|
||||
质押比例, _ = tianyancha_api.get("质押比例", {"keyword": company_name})
|
||||
# 破产重整数量 = tianyancha_api.get_total("破产重整", {"keyword": company_name})
|
||||
# 司法拍卖数量 = tianyancha_api.get_total("司法拍卖", {"keyword": company_name})
|
||||
企业基本信息, _ = tianyancha_api.get("企业基本信息", {"keyword": company_name})
|
||||
# 企业专利信息数量 = tianyancha_api.get_total("企业专利信息", {"keyword": company_name})
|
||||
# 知识产权出质, _ = tianyancha_api.get("知识产权出质", {"keyword": company_name})
|
||||
税务评级, _ = tianyancha_api.get("税务评级", {"keyword": company_name})
|
||||
进出口信用, _ = tianyancha_api.get("进出口信用", {"keyword": company_name})
|
||||
税收违法数量 = tianyancha_api.get_total("税收违法", {"keyword": company_name})
|
||||
欠税公告数量 = tianyancha_api.get_total("欠税公告", {"keyword": company_name})
|
||||
# 行政许可数量 = tianyancha_api.get_total("行政许可", {"keyword": company_name})
|
||||
行政处罚数量 = tianyancha_api.get_total("行政处罚", {"keyword": company_name})
|
||||
经营异常数量 = tianyancha_api.get_total("经营异常", {"keyword": company_name})
|
||||
严重违法数量 = tianyancha_api.get_total("严重违法", {"keyword": company_name})
|
||||
# 终本案件数量 = tianyancha_api.get_total("终本案件", {"keyword": company_name})
|
||||
失信被执行人数量 = tianyancha_api.get_total("失信被执行人", {"keyword": company_name})
|
||||
被执行人数量 = tianyancha_api.get_total("被执行人", {"keyword": company_name})
|
||||
限制消费令数量 = tianyancha_api.get_total("限制消费令", {"keyword": company_name})
|
||||
股权变更, _ = tianyancha_api.get("股权变更", {"keyword": company_name})
|
||||
新闻舆情, _ = tianyancha_api.get("新闻舆情", {"name": company_name}, page=1)
|
||||
|
||||
成立年限 = datetime.now().year - datetime.fromtimestamp(
|
||||
企业基本信息['estiblishTime'] / 1000).year if 企业基本信息 else 0
|
||||
公司类型 = 企业基本信息['companyOrgType']
|
||||
|
||||
开庭公告_劳动争议 = len(
|
||||
[item["caseReason"] for item in filter_bg(司法风险['ktAnnouncementList'], company_name) if
|
||||
item['caseReason'] in 劳动仲裁案由]) if 司法风险 else 0
|
||||
|
||||
开庭公告_被告_合同纠纷 = len(
|
||||
[item["caseReason"] for item in 司法风险['ktAnnouncementList'] if
|
||||
item["caseReason"] and item["caseReason"] in 合同纠纷案由]) if 司法风险 else 0
|
||||
|
||||
纳税信用等级 = 税务评级[0]['grade'] if 税务评级 else "M"
|
||||
|
||||
双随机抽查结果 = '合格'
|
||||
for item in 双随机抽查详情:
|
||||
for child in item:
|
||||
if child['checkResult'] != '未发现问题':
|
||||
双随机抽查结果 = '批评和处罚'
|
||||
break
|
||||
now = datetime.now()
|
||||
近三年股东变更次数 = len([item for item in 股权变更 if
|
||||
datetime.fromtimestamp(item['change_time'] / 1000) > now.replace(year=now.year - 3)])
|
||||
|
||||
最近10条企业舆情负面占比 = len([item for item in 新闻舆情 if item['emotion'] == -1]) / 10 * 100
|
||||
data = {
|
||||
"成立年限": 成立年限,
|
||||
"公司类型": 公司类型,
|
||||
# "股东性质": None,
|
||||
"近三年股东变更次数": 近三年股东变更次数,
|
||||
"最近10条企业舆情负面占比": 最近10条企业舆情负面占比,
|
||||
"开庭公告(被告-合同纠纷、劳动争议)": 开庭公告_劳动争议 + 开庭公告_被告_合同纠纷,
|
||||
"纳税信用等级": 纳税信用等级,
|
||||
"双随机抽查结果": 双随机抽查结果,
|
||||
"经营异常": 经营异常数量,
|
||||
"欠税公告": 欠税公告数量,
|
||||
"行政处罚": 行政处罚数量,
|
||||
"被执行人": 被执行人数量,
|
||||
"失信被执行人": 失信被执行人数量,
|
||||
"税收违法": 税收违法数量,
|
||||
"严重违法": 严重违法数量
|
||||
}
|
||||
return data
|
|
@ -2,7 +2,7 @@ from fastapi import APIRouter
|
|||
from .form_file import router as form_file_router
|
||||
from .company_rate import router as company_rate_router
|
||||
from .company_user import router as company_user_router
|
||||
router = APIRouter(prefix="/cmebiz_rate")
|
||||
router = APIRouter(prefix="/smebiz_rate")
|
||||
router.include_router(form_file_router.router)
|
||||
router.include_router(company_rate_router.router)
|
||||
router.include_router(company_user_router.router)
|
1161
static/bj_model.json
1161
static/bj_model.json
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,479 @@
|
|||
{
|
||||
"model": {
|
||||
"name": "中小商业企业信用评级模型",
|
||||
"columns": [
|
||||
]
|
||||
},
|
||||
"企业填报数据": {
|
||||
"问卷": {
|
||||
"type": "fromColumns",
|
||||
"columns": [
|
||||
{
|
||||
"name": "企业名称",
|
||||
"key": "企业名称",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "联系人名称",
|
||||
"key": "联系人名称",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "股东性质",
|
||||
"key": "股东性质",
|
||||
"type": "enum"
|
||||
},
|
||||
{
|
||||
"name": "主营业务",
|
||||
"key": "主营业务",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "高管平均从业年限",
|
||||
"key": "高管平均从业年限",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "是否设置董事会",
|
||||
"key": "是否设置董事会",
|
||||
"type": "enum"
|
||||
},
|
||||
{
|
||||
"name": "董事会人数",
|
||||
"key": "董事会人数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "是否设置监事会",
|
||||
"key": "是否设置监事会",
|
||||
"type": "enum"
|
||||
},
|
||||
{
|
||||
"name": "监事人数",
|
||||
"key": "监事人数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "年度公司股东或关联方给予公司的资金支持金额",
|
||||
"key": "年度公司股东或关联方给予公司的资金支持金额",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "管理人员人数",
|
||||
"key": "管理人员人数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "职能人员人数",
|
||||
"key": "职能人员人数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "销售人员人数",
|
||||
"key": "销售人员人数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "技术服务人员人数",
|
||||
"key": "技术服务人员人数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "本科及以上人员人数",
|
||||
"key": "本科及以上人员人数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "专科及以下人员人数",
|
||||
"key": "专科及以下人员人数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "年末员工总数",
|
||||
"key": "年末员工总数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "年度离职人数",
|
||||
"key": "年度离职人数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "年末在职员工年内参与培训人数",
|
||||
"key": "年末在职员工年内参与培训人数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "员工周均工作天数",
|
||||
"key": "员工周均工作天数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "员工日均工作时长",
|
||||
"key": "员工日均工作时长",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "年度因公伤亡人次",
|
||||
"key": "年度因公伤亡人次",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "人民币开户银行名称",
|
||||
"key": "人民币开户银行名称",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "人民币开户银行账号",
|
||||
"key": "人民币开户银行账号",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "外币开户银行名称",
|
||||
"key": "外币开户银行名称",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "外币开户银行账号",
|
||||
"key": "外币开户银行账号",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "贷款卡编号",
|
||||
"key": "贷款卡编号",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "经营场所建筑面积",
|
||||
"key": "经营场所建筑面积",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "经营场所位置",
|
||||
"key": "经营场所位置",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "经营场所权属关系",
|
||||
"key": "经营场所权属关系",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "拥有质量管理制度",
|
||||
"key": "拥有质量管理制度",
|
||||
"type": "enum"
|
||||
},
|
||||
{
|
||||
"name": "拥有财务管理制度",
|
||||
"key": "拥有财务管理制度",
|
||||
"type": "enum"
|
||||
},
|
||||
{
|
||||
"name": "拥有合同管理制度",
|
||||
"key": "拥有合同管理制度",
|
||||
"type": "enum"
|
||||
},
|
||||
{
|
||||
"name": "拥有人力资源管理制度",
|
||||
"key": "拥有人力资源管理制度",
|
||||
"type": "enum"
|
||||
},
|
||||
{
|
||||
"name": "工商信用记录",
|
||||
"key": "工商信用记录",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "海关信用记录",
|
||||
"key": "海关信用记录",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "银行信用记录",
|
||||
"key": "银行信用记录",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "法院信用记录",
|
||||
"key": "法院信用记录",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "生产安全信息",
|
||||
"key": "生产安全信息",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "社会责任实施",
|
||||
"key": "社会责任实施",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "销售产品金额",
|
||||
"key": "销售产品金额",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "退回产品金额",
|
||||
"key": "退回产品金额",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "发生过客户隐私泄露",
|
||||
"key": "发生过客户隐私泄露",
|
||||
"type": "enum"
|
||||
},
|
||||
{
|
||||
"name": "对外服务总次数(包括电话咨询、客户支持、产品售后等)",
|
||||
"key": "对外服务总次数(包括电话咨询、客户支持、产品售后等)",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "客户有效投诉次数",
|
||||
"key": "客户有效投诉次数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "投诉解决次数",
|
||||
"key": "投诉解决次数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "投诉响应时间",
|
||||
"key": "投诉响应时间",
|
||||
"type": "int"
|
||||
}
|
||||
]
|
||||
},
|
||||
"财报": {
|
||||
"type": "fromColumns",
|
||||
"columns": [
|
||||
{
|
||||
"name": "数据是否经过审计",
|
||||
"key": "数据是否经过审计",
|
||||
"type": "enum",
|
||||
"config": {
|
||||
"options": [
|
||||
"是",
|
||||
"否"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "资产负债表",
|
||||
"key": "资产负债表",
|
||||
"type": "label"
|
||||
},
|
||||
{
|
||||
"name": "总资产",
|
||||
"key": "总资产",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "净资产",
|
||||
"key": "净资产",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "流动资产",
|
||||
"key": "流动资产",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "流动负债",
|
||||
"key": "流动负债",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "总负债",
|
||||
"key": "总负债",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "存货",
|
||||
"key": "存货",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "预付账款",
|
||||
"key": "预付账款",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "应收票据",
|
||||
"key": "应收票据",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "应收账款",
|
||||
"key": "应收账款",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "利润表",
|
||||
"key": "利润表",
|
||||
"type": "label"
|
||||
},
|
||||
{
|
||||
"name": "营业收入",
|
||||
"key": "营业收入",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "主营业务成本",
|
||||
"key": "主营业务成本",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "利润总额",
|
||||
"key": "利润总额",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "净利润",
|
||||
"key": "净利润",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "计入财务费用的利息支出",
|
||||
"key": "计入财务费用的利息支出",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"name": "现金流量表",
|
||||
"key": "现金流量表",
|
||||
"type": "label"
|
||||
},
|
||||
{
|
||||
"name": "经营性净现金流",
|
||||
"key": "经营性净现金流",
|
||||
"type": "float"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"三方接口数据": {
|
||||
"天眼查": {
|
||||
"type": "fromModel",
|
||||
"params": [
|
||||
"成立年限",
|
||||
"公司类型",
|
||||
"近三年股东变更次数",
|
||||
"最近10条企业舆情负面占比",
|
||||
"开庭公告(被告-合同纠纷、劳动争议)",
|
||||
"纳税信用等级",
|
||||
"双随机抽查结果",
|
||||
"经营异常",
|
||||
"欠税公告",
|
||||
"行政处罚(警告、通报批评、罚款)",
|
||||
"行政处罚(没收违法所得、没收非法财务...)",
|
||||
"被执行人",
|
||||
"失信被执行人",
|
||||
"税收违法",
|
||||
"严重违法"
|
||||
],
|
||||
"columns": [
|
||||
{
|
||||
"key": "成立年限",
|
||||
"name": "成立年限",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"key": "公司类型",
|
||||
"name": "公司类型",
|
||||
"type": "enum",
|
||||
"config": {
|
||||
"options": [
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "近三年股东变更次数",
|
||||
"name": "近三年股东变更次数",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"key": "最近10条企业舆情负面占比",
|
||||
"name": "最近10条企业舆情负面占比",
|
||||
"type": "float"
|
||||
},
|
||||
{
|
||||
"key": "纳税信用等级",
|
||||
"name": "纳税信用等级",
|
||||
"type": "enum",
|
||||
"config": {
|
||||
"options": [
|
||||
"A",
|
||||
"B",
|
||||
"M",
|
||||
"C",
|
||||
"D"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "开庭公告(被告-合同纠纷、劳动争议)",
|
||||
"name": "开庭公告(被告-合同纠纷、劳动争议)",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"key": "双随机抽查结果",
|
||||
"name": "双随机抽查结果",
|
||||
"type": "enum",
|
||||
"config": {
|
||||
"options": [
|
||||
"合格",
|
||||
"不合格"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "经营异常",
|
||||
"name": "经营异常",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"key": "欠税公告",
|
||||
"name": "欠税公告",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"key": "行政处罚(警告、通报批评、罚款)",
|
||||
"name": "行政处罚(警告、通报批评、罚款)",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"key": "行政处罚(没收违法所得、没收非法财务...)",
|
||||
"name": "行政处罚(没收违法所得、没收非法财务...)",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"key": "被执行人",
|
||||
"name": "被执行人",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"key": "失信被执行人",
|
||||
"name": "失信被执行人",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"key": "税收违法",
|
||||
"name": "税收违法",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"key": "严重违法",
|
||||
"name": "严重违法",
|
||||
"type": "int"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"尽调核实数据": {
|
||||
"定性指标": {
|
||||
"columns": [
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
{
|
||||
"公司战略(绿色、双碳、科教、人才、创新驱动、乡村振兴、新型城镇化、可持续发展、应对人口老龄化、就业优先、国家安全、金融安全)": null,
|
||||
"成立年限": null,
|
||||
"近三年股东变更次数": null,
|
||||
"董事会人数": null,
|
||||
"独立董事占比": null,
|
||||
"董事会会议次数": null,
|
||||
"董事会出席率(平均数)": null,
|
||||
"监事会人数": null,
|
||||
"知名商标或品牌数量": null,
|
||||
"产品系列数量": null,
|
||||
"产品种类数量": null,
|
||||
"牵头行业标准和规范制定数量": null,
|
||||
"参与行业标准和规范制定数量": null,
|
||||
"研发投入占营业收入的比重": null,
|
||||
"新产品数量": null,
|
||||
"风险管理部门员工人数": null,
|
||||
"风险管理覆盖部门(市场、作业、行政、人力、财务、合规、技术研发、其他)": null,
|
||||
"营业收入": null,
|
||||
"总资产": null,
|
||||
"毛利率": null,
|
||||
"净资产收益率": null,
|
||||
"总资产报酬率": null,
|
||||
"流动比率": null,
|
||||
"速动比率": null,
|
||||
"应收账款周转率": null,
|
||||
"总资产周转率": null,
|
||||
"资产负债率": null,
|
||||
"经营性净现金流/流动负债": null,
|
||||
"劳动仲裁": null,
|
||||
"开庭公告(案由为劳动争议)": null,
|
||||
"社会保险": null,
|
||||
"死亡数量": null,
|
||||
"工伤数量": null,
|
||||
"资质证书数量": null,
|
||||
"历史经营异常": null,
|
||||
"自身合同违约次数": null,
|
||||
"开庭公告(案由为合同纠纷)": null,
|
||||
"双随机抽查结果": null,
|
||||
"食品安全": null,
|
||||
"假冒化妆品": null,
|
||||
"投诉率": null,
|
||||
"股权质押比例": null,
|
||||
"自身违约次数": null,
|
||||
"自身违约金额": null,
|
||||
"破产重整": null,
|
||||
"司法拍卖": null,
|
||||
"担保代偿比例": null,
|
||||
"数据安全投入占比": null,
|
||||
"供应商实收资本": null,
|
||||
"专利信息": null,
|
||||
"知产出质": null,
|
||||
"纳税信用等级": null,
|
||||
"海关信用等级": null,
|
||||
"税收违法": null,
|
||||
"欠税公告": null,
|
||||
"行政许可数量": null,
|
||||
"行政处罚数量": null,
|
||||
"非正常户": null,
|
||||
"经营异常(公示信息隐瞒真实情况/弄虚作假、登记的住所/经营场所无法联系企业、未在规定期限公示年度报告、未按规定公示企业信息、未在登记所从事经营活动、商事主体名称不适宜、其他原因)": null,
|
||||
"严重违法": null,
|
||||
"黑名单": null,
|
||||
"环保处罚": null,
|
||||
"近三年信用修复次数": null,
|
||||
"立案信息": null,
|
||||
"终本案件": null,
|
||||
"失信被执行人": null,
|
||||
"被执行人": null,
|
||||
"限制高消费": null,
|
||||
"股权冻结": null,
|
||||
"限制出境": null
|
||||
}
|
|
@ -6,7 +6,6 @@ import json
|
|||
import math
|
||||
from copy import deepcopy
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Dict, Any, Union, List
|
||||
|
||||
import requests
|
||||
|
@ -42,6 +41,15 @@ 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"
|
||||
|
@ -160,7 +168,7 @@ class TianyanchaApi:
|
|||
|
||||
def __init__(self, token: str,
|
||||
mongo_connect: MongoConnect = None,
|
||||
list_max_count=500,
|
||||
list_max_count=100,
|
||||
mongo_db_name="天眼查",
|
||||
api_config: Dict[str, Dict] = api_config
|
||||
):
|
||||
|
@ -172,11 +180,9 @@ class TianyanchaApi:
|
|||
self.list_max_count = list_max_count
|
||||
|
||||
def get_data_core(self, full_url, query_info={}):
|
||||
print(full_url)
|
||||
if self.mongo_connect:
|
||||
item = self.mongo_connect.db[self.mongo_db_name].find_one({"url": full_url})
|
||||
if item:
|
||||
print('item', item)
|
||||
print("请求缓存成功")
|
||||
return JsDict(item['data'])
|
||||
headers = {'Authorization': self.token}
|
||||
|
@ -198,7 +204,7 @@ class TianyanchaApi:
|
|||
|
||||
# raise Exception(error_code_dic[data['error_code']])
|
||||
|
||||
def get(self, name, query: dict, query_info: dict = {}):
|
||||
def get(self, name, query: dict, query_info: dict = {}, page=None):
|
||||
total = 0
|
||||
url_config = self.config.get(name)
|
||||
if not url_config:
|
||||
|
@ -206,7 +212,8 @@ class TianyanchaApi:
|
|||
url = url_config['url']
|
||||
full_url = make_query_url(url, query)
|
||||
if url_config["type"] == "list":
|
||||
data, total = self.get_list_core(full_url, {**query, **query_info}, url_config.get('list_max_count'))
|
||||
data, total = self.get_list_core(full_url, {**query, **query_info},
|
||||
page * 20 if page else url_config.get('list_max_count'))
|
||||
else:
|
||||
data = self.get_data_core(full_url, {**query, **query_info})
|
||||
return data, total
|
||||
|
|
Loading…
Reference in New Issue