2022-11-17 15:18:34 +08:00
|
|
|
import requests as requests
|
2022-11-11 15:21:19 +08:00
|
|
|
from fastapi import APIRouter, Depends, HTTPException
|
|
|
|
from sqlalchemy.orm import Session
|
|
|
|
|
2022-11-17 15:18:34 +08:00
|
|
|
from APPData.Crud import CompanyCrud, BusinessCrud
|
|
|
|
from Utils.DataBase.MongoHelperUtils import get_mongodb, get_tyc_mongodb
|
2022-11-11 15:21:19 +08:00
|
|
|
from Utils.DataBase.SqlAlchemyUtils import get_db
|
|
|
|
from Utils.TycApi.Business import get_tyc_data
|
|
|
|
from Utils.TycApi.CommonUtil import CommonUtils
|
|
|
|
from Utils.TycApi.Configure import DB_GSBJ
|
|
|
|
|
|
|
|
router = APIRouter(
|
|
|
|
tags=["工商信息"],
|
|
|
|
prefix="/api/business"
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/pull", summary="拉取数据")
|
|
|
|
def func01(name: str, db: Session = Depends(get_db)):
|
2022-11-17 15:18:34 +08:00
|
|
|
mongodb = get_mongodb()
|
|
|
|
tyc_mongodb = get_tyc_mongodb()
|
2022-11-11 15:21:19 +08:00
|
|
|
# 根据name查询企业是否存在
|
|
|
|
data = CompanyCrud.get_company_by_name(db=db, name=name)
|
|
|
|
if not data:
|
|
|
|
# 不能存在新建企业再返回cid
|
|
|
|
data = CompanyCrud.create_company_by_name(db=db, name=name)
|
|
|
|
cid = data.id
|
|
|
|
# 查询数据库是否有此条数据
|
2022-11-17 15:18:34 +08:00
|
|
|
search_data = mongodb.find_data("WR_DataBase_v2_test", 'C3.1_工商信息', {"企业ID": cid}, [])
|
2022-11-11 15:21:19 +08:00
|
|
|
if search_data:
|
|
|
|
return {"info": "Data already exists", "Datail": search_data}
|
|
|
|
# 拉取天眼查数据到mongodb
|
|
|
|
tyc_res = get_tyc_data(name)
|
|
|
|
if tyc_res != 'success':
|
2022-11-17 15:18:34 +08:00
|
|
|
raise HTTPException(status_code=202, detail=tyc_res)
|
2022-11-11 15:21:19 +08:00
|
|
|
# 查询天眼查数据库
|
2022-11-17 15:18:34 +08:00
|
|
|
tyc_data = tyc_mongodb.find_data(DB_GSBJ, '基本信息', {"企业名称": name}, ['基本信息'])
|
2022-11-11 15:21:19 +08:00
|
|
|
if not tyc_data:
|
2022-11-17 15:18:34 +08:00
|
|
|
raise HTTPException(status_code=202, detail='Data query failed')
|
|
|
|
record = tyc_data.get('基本信息', dict())
|
2022-11-11 15:21:19 +08:00
|
|
|
data = dict()
|
|
|
|
data['企业ID'] = cid
|
|
|
|
data['企业名称'] = name
|
2022-11-17 15:18:34 +08:00
|
|
|
data['企业类型'] = record.get('companyOrgType', None)
|
|
|
|
data['经营状态'] = record.get('regStatus', None)
|
|
|
|
data['法定代表人'] = record.get('legalPersonName', None)
|
|
|
|
data['注册资本'] = record.get('regCapital', None)
|
|
|
|
data['实缴资本'] = record.get('actualCapital', None)
|
|
|
|
data['经营范围'] = record.get('businessScope', None)
|
|
|
|
data['社会统一信用代码'] = record.get('creditCode', None)
|
2022-11-11 15:21:19 +08:00
|
|
|
data['成立日期'] = CommonUtils.time_stamp(record['estiblishTime'])
|
2022-11-17 15:18:34 +08:00
|
|
|
data['注册地址'] = record.get('regLocation', None)
|
|
|
|
data['登记机关'] = record.get('regInstitute', None)
|
2022-11-11 15:21:19 +08:00
|
|
|
data['核准日期'] = CommonUtils.time_stamp(record['approvedTime'])
|
|
|
|
data['更新时间'] = CommonUtils.get_current_time()
|
2022-11-17 15:18:34 +08:00
|
|
|
# 保存到数据到data_business
|
|
|
|
BusinessCrud.create_business_by_id(db=db, mongodb=mongodb, _id=cid, content=data)
|
|
|
|
mongodb.client.close()
|
|
|
|
tyc_mongodb.client.close()
|
2022-11-11 15:21:19 +08:00
|
|
|
return {"info": "Pull succeeded"}
|
|
|
|
|
|
|
|
|
|
|
|
@router.post("/update", summary="更新数据")
|
|
|
|
def func02(cid: str, db: Session = Depends(get_db)):
|
2022-11-17 15:18:34 +08:00
|
|
|
mongodb = get_mongodb()
|
|
|
|
tyc_mongodb = get_tyc_mongodb()
|
|
|
|
# 查询企业是否存在
|
2022-11-11 15:21:19 +08:00
|
|
|
db_item = CompanyCrud.get_company_by_id(db, _id=cid)
|
|
|
|
if not db_item:
|
|
|
|
raise HTTPException(status_code=204, detail="Company Not Found")
|
|
|
|
name = db_item.name
|
|
|
|
tyc_res = get_tyc_data(name)
|
|
|
|
if tyc_res != 'success':
|
|
|
|
raise HTTPException(status_code=401, detail=tyc_res)
|
|
|
|
# 查询天眼查数据库
|
2022-11-17 15:18:34 +08:00
|
|
|
tyc_data = tyc_mongodb.find_data(DB_GSBJ, '基本信息', {"企业名称": name}, ['基本信息'])
|
2022-11-11 15:21:19 +08:00
|
|
|
if not tyc_data:
|
|
|
|
raise HTTPException(status_code=401, detail='Data query failed')
|
2022-11-17 15:18:34 +08:00
|
|
|
record = tyc_data.get('基本信息', dict())
|
2022-11-11 15:21:19 +08:00
|
|
|
data = dict()
|
|
|
|
data['企业ID'] = cid
|
|
|
|
data['企业名称'] = name
|
2022-11-17 15:18:34 +08:00
|
|
|
data['企业类型'] = record.get('companyOrgType', None)
|
|
|
|
data['经营状态'] = record.get('regStatus', None)
|
|
|
|
data['法定代表人'] = record.get('legalPersonName', None)
|
|
|
|
data['注册资本'] = record.get('regCapital', None)
|
|
|
|
data['实缴资本'] = record.get('actualCapital', None)
|
|
|
|
data['经营范围'] = record.get('businessScope', None)
|
|
|
|
data['社会统一信用代码'] = record.get('creditCode', None)
|
2022-11-11 15:21:19 +08:00
|
|
|
data['成立日期'] = CommonUtils.time_stamp(record['estiblishTime'])
|
2022-11-17 15:18:34 +08:00
|
|
|
data['注册地址'] = record.get('regLocation', None)
|
|
|
|
data['登记机关'] = record.get('regInstitute', None)
|
2022-11-11 15:21:19 +08:00
|
|
|
data['核准日期'] = CommonUtils.time_stamp(record['approvedTime'])
|
|
|
|
data['更新时间'] = CommonUtils.get_current_time()
|
2022-11-17 15:18:34 +08:00
|
|
|
# 保存到数据到data_business
|
|
|
|
BusinessCrud.update_business_by_id(db=db, mongodb=mongodb, _id=cid, content=data)
|
|
|
|
mongodb.client.close()
|
|
|
|
tyc_mongodb.client.close()
|
2022-11-11 15:21:19 +08:00
|
|
|
return {"info": "Update succeeded"}
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/view", summary="查看数据")
|
|
|
|
def func03(cid: str, db: Session = Depends(get_db)):
|
2022-11-17 15:18:34 +08:00
|
|
|
mongodb = get_mongodb()
|
|
|
|
# 查询企业是否存在
|
2022-11-11 15:21:19 +08:00
|
|
|
db_item = CompanyCrud.get_company_by_id(db, _id=cid)
|
|
|
|
if not db_item:
|
2022-11-17 15:18:34 +08:00
|
|
|
raise HTTPException(status_code=404, detail="Company Not Found")
|
|
|
|
data = BusinessCrud.find_business_by_id(db=db, mongodb=mongodb, _id=cid)
|
2022-11-11 15:21:19 +08:00
|
|
|
return data
|
2022-11-17 15:18:34 +08:00
|
|
|
|
|
|
|
|