cockpit/Router/DaliyRouter.py

51 lines
1.5 KiB
Python
Raw Permalink Normal View History

2023-02-24 15:27:19 +08:00
import math
from fastapi import APIRouter, UploadFile, File, Depends, HTTPException
import pandas as pd
from sqlalchemy.orm import Session
from Crud import DailyCrud
from Schemas import DailySchemas
from Utils.SqlAlchemyUtils import get_db
router = APIRouter(
tags=["部门日报"],
prefix="/api/daily",
)
@router.post("/upload", summary='日报录入', description='录入部门日报')
2023-02-24 15:58:29 +08:00
def create_upload_file(file: UploadFile = File(...), db: Session = Depends(get_db)):
2023-02-24 15:27:19 +08:00
# 使用 Pandas 读取 Excel 文件
df = pd.read_csv(file.file)
for index, row in df.iterrows():
insert = {
"department": row[0],
"staff_name": row[1],
"work_date": row[2],
"work_content": row[3],
"work_status": row[4],
}
for key, val in insert.items():
if isinstance(insert.get(key), str):
continue
elif insert.get(key) is None:
continue
elif math.isnan(insert.get(key)):
insert[key] = None
DailyCrud.insert_data(db, insert)
return {
"code": 200,
"message": "录入成功",
"content": {}
}
@router.post("/query", summary='日报查询', description='查询部门日报')
def func(schema: DailySchemas.QueryDaily, db: Session = Depends(get_db)):
result = DailyCrud.query_daily(db, schema)
return {
"code": 200,
"message": "查询成功",
"content": result
}