2022-11-17 15:18:34 +08:00
|
|
|
import datetime
|
|
|
|
import math
|
|
|
|
import pandas as pd
|
|
|
|
from fastapi import APIRouter, Depends, UploadFile, File, HTTPException
|
|
|
|
from sqlalchemy.orm import Session
|
2022-11-17 15:26:51 +08:00
|
|
|
from APPData.Schemas import CompanySchemas
|
2022-11-17 15:18:34 +08:00
|
|
|
from Utils.DataBase.MongoHelperUtils import get_mongodb
|
|
|
|
from Utils.DataBase.SqlAlchemyUtils import get_db
|
|
|
|
|
|
|
|
router = APIRouter(
|
|
|
|
tags=["宏观数据"],
|
|
|
|
prefix="/api/macro_data"
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
@router.post("/upload", summary="上传经济实力表")
|
|
|
|
async def func01(region: str, excel: UploadFile = File(...), db: Session = Depends(get_db)):
|
|
|
|
mongodb = get_mongodb()
|
|
|
|
contents = await excel.read()
|
|
|
|
data = pd.read_excel(contents, skiprows=1)
|
|
|
|
data = data.set_index('序号')
|
|
|
|
|
|
|
|
for num in data.index.values:
|
|
|
|
df_line = data.loc[num, data.columns.values].to_dict()
|
|
|
|
df_line['省/直辖市'] = region
|
|
|
|
for key, value in df_line.items():
|
|
|
|
try:
|
|
|
|
if math.isnan(value):
|
|
|
|
df_line[key] = None
|
|
|
|
except TypeError:
|
|
|
|
continue
|
|
|
|
mongodb.upsert_data("WR_DataBase_v2_test", 'C12.2_区域经济',
|
|
|
|
{"省/直辖市": region, "地区": df_line['地区'], "年份": df_line["年份"]}, df_line)
|
|
|
|
return {"info": "Success"}
|
|
|
|
|
|
|
|
|
2022-11-17 15:26:51 +08:00
|
|
|
@router.post("/view", summary="查看数据")
|
|
|
|
def func03(req_body: CompanySchemas.MacroSearch, db: Session = Depends(get_db)):
|
2022-11-17 15:18:34 +08:00
|
|
|
mongodb = get_mongodb()
|
2022-11-17 15:26:51 +08:00
|
|
|
data = mongodb.find_all_data("WR_DataBase_v2_test", 'C12.2_区域经济',
|
|
|
|
{"省/直辖市": req_body.provinces, "地区": req_body.region, "年份": req_body.year}, [])
|
|
|
|
return data
|