changes 导入财务数据
This commit is contained in:
parent
2600909dfb
commit
32843e2d2c
|
@ -82,3 +82,4 @@ def save_rating_flow_node(node_id: str, data: dict, db: Session, mongodb: MongoH
|
|||
db.commit()
|
||||
|
||||
return node_item.rating_process_id
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ from sqlalchemy.orm import Session
|
|||
from App.Crud import RatingFlowCrud as Crud
|
||||
from App.Schemas import RatingFlowSchema
|
||||
from Utils.Authentication.TokenUtil import decode_token
|
||||
from Utils.Common.RegisterUtils import request_to_get, request_to_post
|
||||
from Utils.DataBase.MongoHelperUtils import get_mongodb, MongoHelper
|
||||
from Utils.DataBase.SqlAlchemyUtils import get_db
|
||||
|
||||
|
@ -68,8 +69,67 @@ def func(schema: RatingFlowSchema.SaveRatingFlowNodeReqBody, db: Session = Depen
|
|||
|
||||
|
||||
@router.post("/import/input_data", summary="导入填报数据", tags=["评级节点"])
|
||||
def func(schema):
|
||||
pass
|
||||
def func(schema: RatingFlowSchema.GetRatingDataReqBody, db: Session = Depends(get_db),
|
||||
mongodb: MongoHelper = Depends(get_mongodb)):
|
||||
score_card_id = schema.scorecard_id
|
||||
|
||||
# 获取打分卡配置
|
||||
score_card_url = 'http://test.fecribd.com:5004/api/model_store/scorecard/view?_id={}'.format(score_card_id)
|
||||
res = request_to_get(score_card_url)
|
||||
if not res:
|
||||
raise HTTPException(status_code=400, detail="ScoreCard Not Found")
|
||||
|
||||
data_table = res.get('data_table')
|
||||
if not data_table:
|
||||
raise HTTPException(status_code=400, detail="DataTable Not Found")
|
||||
|
||||
# 获取填报数据
|
||||
data_url = 'http://test.fecribd.com:5001/api/query/fiancial_data'
|
||||
data = {"cid": schema.company_id, "report_date": schema.report_date}
|
||||
result = request_to_post(data_url, data)
|
||||
if not result:
|
||||
raise HTTPException(status_code=400, detail="Data Not Found")
|
||||
|
||||
# 整合结果
|
||||
data_result = dict()
|
||||
for name, content in data_table.items():
|
||||
if name == '资产负债表':
|
||||
balance = list()
|
||||
for sheet in result['balance_sheet_data']:
|
||||
insert = dict()
|
||||
for cont in content:
|
||||
insert['报告期'] = sheet['截止日期']
|
||||
try:
|
||||
insert[cont] = sheet[cont]
|
||||
except KeyError:
|
||||
insert[cont] = None
|
||||
balance.append(insert)
|
||||
data_result['资产负债表'] = balance
|
||||
if name == '利润表':
|
||||
income = list()
|
||||
for sheet in result['income_sheet_data']:
|
||||
insert = dict()
|
||||
for cont in content:
|
||||
insert['报告期'] = sheet['截止日期']
|
||||
try:
|
||||
insert[cont] = sheet[cont]
|
||||
except KeyError:
|
||||
insert[cont] = None
|
||||
income.append(insert)
|
||||
data_result['利润表'] = income
|
||||
if name == '现金流量表':
|
||||
cashflow = list()
|
||||
for sheet in result['cashflow_sheet_data']:
|
||||
insert = dict()
|
||||
for cont in content:
|
||||
insert['报告期'] = sheet['截止日期']
|
||||
try:
|
||||
insert[cont] = sheet[cont]
|
||||
except KeyError:
|
||||
insert[cont] = None
|
||||
cashflow.append(insert)
|
||||
data_result['现金流量表'] = cashflow
|
||||
return data_result
|
||||
|
||||
|
||||
@router.post("/import/index_data", summary="导入定性定量指标", tags=["评级节点"])
|
||||
|
|
|
@ -52,3 +52,10 @@ class CreateParticipantReqBody(BaseModel):
|
|||
class SaveRatingFlowNodeReqBody(BaseModel):
|
||||
node_id: str = None
|
||||
data: dict = {}
|
||||
|
||||
|
||||
class GetRatingDataReqBody(BaseModel):
|
||||
company_id: str = None
|
||||
scorecard_id: str = None
|
||||
report_date: list = None
|
||||
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
import json
|
||||
|
||||
import requests
|
||||
|
||||
|
||||
TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2luZm8iOnsidWlkIjoiVUlEMDAwMSIsImVtYWlsIjoiZmVjcmliZEBmZWNyLmNvbS5jbiIsIm5hbWUiOiJyb290Iiwicm9sZSI6Ilx1N2JhMVx1NzQwNlx1NTQ1OCIsImRlcGFydG1lbnQiOiJcdTY1NzBcdTViNTdcdTUzMTZcdTkwZTgiLCJyb2xlX2lkIjoiUk9MRTAxIiwiZGVwYXJ0bWVudF9pZCI6IkQwMDEifSwiZXhwIjoxNjgzNDc2OTA4fQ.8girdw3n0WDktRuK0aSgGor10eb11nIFvRJqUtPZum4"
|
||||
HEADERS = {"token": TOKEN}
|
||||
|
||||
|
||||
def request_to_get(url):
|
||||
res = requests.get(url=url, headers=HEADERS)
|
||||
if res.status_code == 200:
|
||||
return json.loads(res.text)
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
def request_to_post(url, data):
|
||||
res = requests.post(url=url, headers=HEADERS, data=json.dumps(data))
|
||||
if res.status_code == 200:
|
||||
return json.loads(res.text)
|
||||
else:
|
||||
return False
|
5
main.py
5
main.py
|
@ -1,3 +1,4 @@
|
|||
import uvicorn
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
|
||||
|
@ -25,3 +26,7 @@ app.include_router(RatingFlowRouter.router)
|
|||
# app.include_router(Router.IndividualCreditRouter.router)
|
||||
# app.include_router(Router.ExternalSupportRouter.router)
|
||||
# app.include_router(Router.SubjectCreditRouter.router)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run(app, host="127.0.0.1", port=8011)
|
Loading…
Reference in New Issue