changes 查询接口
This commit is contained in:
parent
1868637993
commit
f126d19cc1
|
@ -52,3 +52,12 @@ def get_company_total(db: Session, name, page: int = 0, pagesize: int = 10):
|
||||||
"detail": detail
|
"detail": detail
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def search_all_data(db, _id: str):
|
||||||
|
company_obj = db.query(Company).filter_by(id=_id).first()
|
||||||
|
return company_obj.dict()
|
||||||
|
|
||||||
|
|
||||||
|
def search_financial_data(db, _id: str, report_date: list):
|
||||||
|
company_obj = db.query(Company).filter_by(id=_id).first()
|
||||||
|
return company_obj.financial_dict(report_date)
|
||||||
|
|
|
@ -21,6 +21,24 @@ class Company(Base):
|
||||||
income_sheet_data = relationship("Income", backref="data_company")
|
income_sheet_data = relationship("Income", backref="data_company")
|
||||||
cashflow_sheet_data = relationship("CashFlow", backref="data_company")
|
cashflow_sheet_data = relationship("CashFlow", backref="data_company")
|
||||||
|
|
||||||
|
def dict(self):
|
||||||
|
__dict = {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
|
||||||
|
__dict.update({"business_data": None if not self.business_data else self.business_data.dict()})
|
||||||
|
__dict.update({"shareholder_data": None if not self.shareholder_data else self.shareholder_data.dict()})
|
||||||
|
__dict.update({"lawsuit_data": [lawsuit.list() for lawsuit in list(self.lawsuit_data)]})
|
||||||
|
__dict.update({"dishonest_data": [dishonest.list() for dishonest in list(self.dishonest_data)]})
|
||||||
|
__dict.update({"balance_sheet_data": [balance.list() for balance in list(self.balance_sheet_data)]})
|
||||||
|
__dict.update({"income_sheet_data": [income.list() for income in list(self.income_sheet_data)]})
|
||||||
|
__dict.update({"cashflow_sheet_data": [cashflow.list() for cashflow in list(self.cashflow_sheet_data)]})
|
||||||
|
return __dict
|
||||||
|
|
||||||
|
def financial_dict(self, report_date):
|
||||||
|
__dict = {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
|
||||||
|
__dict.update({"balance_sheet_data": [b for b in [balance.list() for balance in list(self.balance_sheet_data)] if b.get('截止日期') in report_date]})
|
||||||
|
__dict.update({"income_sheet_data": [i for i in [income.list() for income in list(self.income_sheet_data)] if i.get('截止日期') in report_date]})
|
||||||
|
__dict.update({"cashflow_sheet_data": [c for c in [cashflow.list() for cashflow in list(self.cashflow_sheet_data)] if c.get('截止日期') in report_date]})
|
||||||
|
return __dict
|
||||||
|
|
||||||
|
|
||||||
# 工商信息
|
# 工商信息
|
||||||
class Business(Base):
|
class Business(Base):
|
||||||
|
@ -33,7 +51,7 @@ class Business(Base):
|
||||||
def dict(self):
|
def dict(self):
|
||||||
mongodb = get_mongodb()
|
mongodb = get_mongodb()
|
||||||
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C3.1_工商信息", _id=self.obj_id)
|
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C3.1_工商信息", _id=self.obj_id)
|
||||||
return item.get("data")
|
return item
|
||||||
|
|
||||||
|
|
||||||
# 股东信息
|
# 股东信息
|
||||||
|
@ -47,7 +65,7 @@ class Shareholder(Base):
|
||||||
def dict(self):
|
def dict(self):
|
||||||
mongodb = get_mongodb()
|
mongodb = get_mongodb()
|
||||||
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C3.2_股东信息", _id=self.obj_id)
|
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C3.2_股东信息", _id=self.obj_id)
|
||||||
return item.get("data")
|
return item.get("股东列表")
|
||||||
|
|
||||||
|
|
||||||
# 法律诉讼
|
# 法律诉讼
|
||||||
|
@ -61,7 +79,8 @@ class Lawsuit(Base):
|
||||||
def list(self):
|
def list(self):
|
||||||
mongodb = get_mongodb()
|
mongodb = get_mongodb()
|
||||||
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C9.6_法律诉讼", _id=self.obj_id)
|
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C9.6_法律诉讼", _id=self.obj_id)
|
||||||
return item.get("data")
|
item.pop('企业ID')
|
||||||
|
return item
|
||||||
|
|
||||||
|
|
||||||
# 失信人
|
# 失信人
|
||||||
|
@ -75,7 +94,8 @@ class Dishonest(Base):
|
||||||
def list(self):
|
def list(self):
|
||||||
mongodb = get_mongodb()
|
mongodb = get_mongodb()
|
||||||
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C9.5_失信人", _id=self.obj_id)
|
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C9.5_失信人", _id=self.obj_id)
|
||||||
return item.get("data")
|
item.pop('企业ID')
|
||||||
|
return item
|
||||||
|
|
||||||
|
|
||||||
# 资产负债表
|
# 资产负债表
|
||||||
|
@ -90,7 +110,8 @@ class Balance(Base):
|
||||||
def list(self):
|
def list(self):
|
||||||
mongodb = get_mongodb()
|
mongodb = get_mongodb()
|
||||||
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C6.1_资产负债表", _id=self.obj_id)
|
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C6.1_资产负债表", _id=self.obj_id)
|
||||||
return item.get("data")
|
item.pop('企业ID')
|
||||||
|
return item
|
||||||
|
|
||||||
|
|
||||||
# 利润表
|
# 利润表
|
||||||
|
@ -105,7 +126,8 @@ class Income(Base):
|
||||||
def list(self):
|
def list(self):
|
||||||
mongodb = get_mongodb()
|
mongodb = get_mongodb()
|
||||||
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C6.2_利润表", _id=self.obj_id)
|
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C6.2_利润表", _id=self.obj_id)
|
||||||
return item.get("data")
|
item.pop('企业ID')
|
||||||
|
return item
|
||||||
|
|
||||||
|
|
||||||
# 现金流量表
|
# 现金流量表
|
||||||
|
@ -120,7 +142,8 @@ class CashFlow(Base):
|
||||||
def list(self):
|
def list(self):
|
||||||
mongodb = get_mongodb()
|
mongodb = get_mongodb()
|
||||||
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C6.3_现金流量表", _id=self.obj_id)
|
item = mongodb.find_data_by_id(dbname="WR_DataBase_v2_test", sheet="C6.3_现金流量表", _id=self.obj_id)
|
||||||
return item.get("data")
|
item.pop('企业ID')
|
||||||
|
return item
|
||||||
|
|
||||||
|
|
||||||
Base.metadata.create_all(bind=engine)
|
Base.metadata.create_all(bind=engine)
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
from fastapi import APIRouter, Depends, HTTPException
|
||||||
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
|
from APPData.Crud import CompanyCrud
|
||||||
|
from APPData.Schemas import CompanySchemas
|
||||||
|
from Utils.DataBase.SqlAlchemyUtils import get_db
|
||||||
|
|
||||||
|
router = APIRouter(
|
||||||
|
tags=["查询汇总"],
|
||||||
|
prefix="/api/query"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@router.get("/all_data", summary="查询企业所有数据")
|
||||||
|
def func01(cid: str, db: Session = Depends(get_db)):
|
||||||
|
# 根据cid查询企业是否存在
|
||||||
|
data = CompanyCrud.get_company_by_id(db=db, _id=cid)
|
||||||
|
if not data:
|
||||||
|
raise HTTPException(status_code=404, detail="Company Not Found")
|
||||||
|
result = CompanyCrud.search_all_data(db=db, _id=cid)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/fiancial_data", summary="查询企业财务数据")
|
||||||
|
def func02(req_body: CompanySchemas.FinancialSearch, db: Session = Depends(get_db)):
|
||||||
|
# 根据cid查询企业是否存在
|
||||||
|
data = CompanyCrud.get_company_by_id(db=db, _id=req_body.cid)
|
||||||
|
if not data:
|
||||||
|
raise HTTPException(status_code=404, detail="Company Not Found")
|
||||||
|
result = CompanyCrud.search_financial_data(db=db, _id=req_body.cid, report_date=req_body.report_date)
|
||||||
|
return result
|
|
@ -11,3 +11,8 @@ class MacroSearch(BaseModel):
|
||||||
provinces: str = '四川省'
|
provinces: str = '四川省'
|
||||||
region: str = '成都市'
|
region: str = '成都市'
|
||||||
year: int = 2021
|
year: int = 2021
|
||||||
|
|
||||||
|
|
||||||
|
class FinancialSearch(BaseModel):
|
||||||
|
cid: str = 'CID00000002'
|
||||||
|
report_date: list = ['2021-12-31', '2020-12-31', '2019-12-31']
|
3
main.py
3
main.py
|
@ -3,7 +3,7 @@ from fastapi import FastAPI
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
|
|
||||||
from APPData.Router import CompanyRouter, BusinessRouter, ShareholderRouter, LawsuitRouter, DishonestRouter, \
|
from APPData.Router import CompanyRouter, BusinessRouter, ShareholderRouter, LawsuitRouter, DishonestRouter, \
|
||||||
BalanceSheetRouter, IncomeSheetRouter, CashFlowStatementRouter, MacroDataRouter
|
BalanceSheetRouter, IncomeSheetRouter, CashFlowStatementRouter, MacroDataRouter, QuerySummaryRouter
|
||||||
|
|
||||||
app = FastAPI(
|
app = FastAPI(
|
||||||
title="数据平台",
|
title="数据平台",
|
||||||
|
@ -28,6 +28,7 @@ app.include_router(BalanceSheetRouter.router)
|
||||||
app.include_router(IncomeSheetRouter.router)
|
app.include_router(IncomeSheetRouter.router)
|
||||||
app.include_router(CashFlowStatementRouter.router)
|
app.include_router(CashFlowStatementRouter.router)
|
||||||
app.include_router(MacroDataRouter.router)
|
app.include_router(MacroDataRouter.router)
|
||||||
|
app.include_router(QuerySummaryRouter.router)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
Loading…
Reference in New Issue