项目初次提交

This commit is contained in:
2025-04-11 08:54:28 +08:00
commit 9e14a3256f
220 changed files with 15673 additions and 0 deletions

View File

View File

@ -0,0 +1,47 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2025/04/03 10:30
# @File : crud.py
# @IDE : PyCharm
# @desc : 数据访问层
from sqlalchemy.ext.asyncio import AsyncSession
from core.crud import DalBase
from . import schemas, models
class ProjectDetectDal(DalBase):
def __init__(self, db: AsyncSession):
super(ProjectDetectDal, self).__init__()
self.db = db
self.model = models.ProjectDetect
self.schema = schemas.ProjectDetectSimpleOut
class ProjectDetectImgDal(DalBase):
def __init__(self, db: AsyncSession):
super(ProjectDetectImgDal, self).__init__()
self.db = db
self.model = models.ProjectDetectImg
self.schema = schemas.ProjectDetectImgSimpleOut
class ProjectDetectLogDal(DalBase):
def __init__(self, db: AsyncSession):
super(ProjectDetectLogDal, self).__init__()
self.db = db
self.model = models.ProjectDetectLog
self.schema = schemas.ProjectDetectLogSimpleOut
class ProjectDetectLogImgDal(DalBase):
def __init__(self, db: AsyncSession):
super(ProjectDetectLogImgDal, self).__init__()
self.db = db
self.model = models.ProjectDetectLogImg
self.schema = schemas.ProjectDetectLogImgSimpleOut

View File

View File

@ -0,0 +1,67 @@
from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy import String, Integer
from db.db_base import BaseModel
class ProjectDetect(BaseModel):
"""
项目推理集合
"""
__tablename__ = "project_detect"
__table_args__ = ({'comment': '项目推理集合'})
project_id: Mapped[int] = mapped_column(Integer, nullable=False)
detect_name: Mapped[str] = mapped_column(String(64), nullable=False)
detect_version: Mapped[int] = mapped_column(Integer)
detect_no: Mapped[str] = mapped_column(String(32))
detect_status: Mapped[int] = mapped_column(Integer)
file_type: Mapped[str] = mapped_column(String(10))
folder_url: Mapped[str] = mapped_column(String(255))
rtsp_url: Mapped[str] = mapped_column(String(255))
user_id: Mapped[int] = mapped_column(Integer, nullable=False)
class ProjectDetectImg(BaseModel):
"""
待推理图片
"""
__tablename__ = "project_detect_img"
__table_args__ = ({'comment': '待推理图片'})
detect_id: Mapped[int] = mapped_column(Integer, nullable=False)
file_name: Mapped[str] = mapped_column(String(64), nullable=False)
image_url: Mapped[str] = mapped_column(String(255), nullable=False)
thumb_image_url: Mapped[str] = mapped_column(String(255), nullable=False)
user_id: Mapped[int] = mapped_column(Integer, nullable=False)
class ProjectDetectLog(BaseModel):
"""
项目推理记录
"""
__tablename__ = "project_detect_log"
__table_args__ = ({'comment': '项目推理记录'})
detect_id: Mapped[int] = mapped_column(Integer, nullable=False)
detect_version: Mapped[str] = mapped_column(String(10))
detect_name: Mapped[str] = mapped_column(String(64), nullable=False)
train_id: Mapped[int] = mapped_column(Integer, nullable=False)
train_version: Mapped[str] = mapped_column(String(10))
pt_type: Mapped[str] = mapped_column(String(10))
pt_url: Mapped[str] = mapped_column(String(255))
folder_url: Mapped[str] = mapped_column(String(255))
detect_folder_url: Mapped[str] = mapped_column(String(255))
user_id: Mapped[int] = mapped_column(Integer, nullable=False)
class ProjectDetectLogImg(BaseModel):
"""
推理完成的图片
"""
__tablename__ = "project_detect_log_img"
__table_args__ = ({'comment': '项目训练版本信息表'})
log_id: Mapped[int] = mapped_column(Integer, nullable=False)
file_name: Mapped[str] = mapped_column(String(64), nullable=False)
image_url: Mapped[str] = mapped_column(String(255), nullable=False)

View File

@ -0,0 +1,4 @@
from .project_detect import ProjectDetectParams
from .project_detect_img import ProjectDetectImgParams
from .project_detect_log import ProjectDetectLogParams
from .project_detect_log_img import ProjectDetectLogImgParams

View File

@ -0,0 +1,15 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2025/04/03 10:30
# @File : project_detect.py
# @IDE : PyCharm
# @desc : 项目推理集合信息
from fastapi import Depends
from core.dependencies import Paging, QueryParams
class ProjectDetectParams(QueryParams):
def __init__(self, params: Paging = Depends()):
super().__init__(params)

View File

@ -0,0 +1,15 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2025/04/03 10:30
# @File : project_detect_img.py
# @IDE : PyCharm
# @desc : 项目推理集合图片信息
from fastapi import Depends
from core.dependencies import Paging, QueryParams
class ProjectDetectImgParams(QueryParams):
def __init__(self, params: Paging = Depends()):
super().__init__(params)

View File

@ -0,0 +1,15 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2025/04/03 10:31
# @File : project_detect_log.py
# @IDE : PyCharm
# @desc : 项目推理记录信息
from fastapi import Depends
from core.dependencies import Paging, QueryParams
class ProjectDetectLogParams(QueryParams):
def __init__(self, params: Paging = Depends()):
super().__init__(params)

View File

@ -0,0 +1,15 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2025/04/03 10:31
# @File : project_detect_log_img.py
# @IDE : PyCharm
# @desc : 项目推理记录图片信息
from fastapi import Depends
from core.dependencies import Paging, QueryParams
class ProjectDetectLogImgParams(QueryParams):
def __init__(self, params: Paging = Depends()):
super().__init__(params)

View File

@ -0,0 +1,4 @@
from .project_detect import ProjectDetect, ProjectDetectSimpleOut
from .project_detect_img import ProjectDetectImg, ProjectDetectImgSimpleOut
from .project_detect_log import ProjectDetectLog, ProjectDetectLogSimpleOut
from .project_detect_log_img import ProjectDetectLogImg, ProjectDetectLogImgSimpleOut

View File

@ -0,0 +1,30 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2025/04/03 10:30
# @File : project_detect.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作
from pydantic import BaseModel, Field, ConfigDict
from core.data_types import DatetimeStr
class ProjectDetect(BaseModel):
project_id: int = Field(..., title="None")
detect_name: str = Field(..., title="None")
detect_version: int = Field(..., title="None")
detect_no: str = Field(..., title="None")
detect_status: int = Field(..., title="None")
file_type: str = Field(..., title="None")
folder_url: str = Field(..., title="None")
rtsp_url: str = Field(..., title="None")
user_id: int = Field(..., title="None")
class ProjectDetectSimpleOut(ProjectDetect):
model_config = ConfigDict(from_attributes=True)
id: int = Field(..., title="编号")
create_datetime: DatetimeStr = Field(..., title="创建时间")
update_datetime: DatetimeStr = Field(..., title="更新时间")

View File

@ -0,0 +1,26 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2025/04/03 10:30
# @File : project_detect_img.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作
from pydantic import BaseModel, Field, ConfigDict
from core.data_types import DatetimeStr
class ProjectDetectImg(BaseModel):
detect_id: int = Field(..., title="None")
file_name: str = Field(..., title="None")
image_url: str = Field(..., title="None")
thumb_image_url: str = Field(..., title="None")
user_id: int = Field(..., title="None")
class ProjectDetectImgSimpleOut(ProjectDetectImg):
model_config = ConfigDict(from_attributes=True)
id: int = Field(..., title="编号")
create_datetime: DatetimeStr = Field(..., title="创建时间")
update_datetime: DatetimeStr = Field(..., title="更新时间")

View File

@ -0,0 +1,31 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2025/04/03 10:31
# @File : project_detect_log.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作
from pydantic import BaseModel, Field, ConfigDict
from core.data_types import DatetimeStr
class ProjectDetectLog(BaseModel):
detect_id: int = Field(..., title="None")
detect_version: str = Field(..., title="None")
detect_name: str = Field(..., title="None")
train_id: int = Field(..., title="None")
train_version: str = Field(..., title="None")
pt_type: str = Field(..., title="None")
pt_url: str = Field(..., title="None")
folder_url: str = Field(..., title="None")
detect_folder_url: str = Field(..., title="None")
user_id: int = Field(..., title="None")
class ProjectDetectLogSimpleOut(ProjectDetectLog):
model_config = ConfigDict(from_attributes=True)
id: int = Field(..., title="编号")
create_datetime: DatetimeStr = Field(..., title="创建时间")
update_datetime: DatetimeStr = Field(..., title="更新时间")

View File

@ -0,0 +1,24 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2025/04/03 10:31
# @File : project_detect_log_img.py
# @IDE : PyCharm
# @desc : pydantic 模型,用于数据库序列化操作
from pydantic import BaseModel, Field, ConfigDict
from core.data_types import DatetimeStr
class ProjectDetectLogImg(BaseModel):
log_id: int = Field(..., title="None")
file_name: str = Field(..., title="None")
image_url: str = Field(..., title="None")
class ProjectDetectLogImgSimpleOut(ProjectDetectLogImg):
model_config = ConfigDict(from_attributes=True)
id: int = Field(..., title="编号")
create_datetime: DatetimeStr = Field(..., title="创建时间")
update_datetime: DatetimeStr = Field(..., title="更新时间")

View File

@ -0,0 +1,150 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Create Time : 2025/04/03 10:30
# @File : views.py
# @IDE : PyCharm
# @desc : 路由,视图文件
from core.dependencies import IdList
from apps.vadmin.auth.utils.validation.auth import Auth
from sqlalchemy.ext.asyncio import AsyncSession
from apps.vadmin.auth.utils.current import AllUserAuth
from core.database import db_getter
from . import schemas, crud, models, params
from fastapi import Depends, APIRouter
from utils.response import SuccessResponse
app = APIRouter()
###########################################################
# 项目推理集合信息
###########################################################
@app.get("/project/detect", summary="获取项目推理集合信息列表", tags=["项目推理集合信息"])
async def get_project_detect_list(p: params.ProjectDetectParams = Depends(), auth: Auth = Depends(AllUserAuth())):
datas, count = await crud.ProjectDetectDal(auth.db).get_datas(**p.dict(), v_return_count=True)
return SuccessResponse(datas, count=count)
@app.post("/project/detect", summary="创建项目推理集合信息", tags=["项目推理集合信息"])
async def create_project_detect(data: schemas.ProjectDetect, auth: Auth = Depends(AllUserAuth())):
return SuccessResponse(await crud.ProjectDetectDal(auth.db).create_data(data=data))
@app.delete("/project/detect", summary="删除项目推理集合信息", description="硬删除", tags=["项目推理集合信息"])
async def delete_project_detect_list(ids: IdList = Depends(), auth: Auth = Depends(AllUserAuth())):
await crud.ProjectDetectDal(auth.db).delete_datas(ids=ids.ids, v_soft=False)
return SuccessResponse("删除成功")
@app.put("/project/detect/{data_id}", summary="更新项目推理集合信息", tags=["项目推理集合信息"])
async def put_project_detect(data_id: int, data: schemas.ProjectDetect, auth: Auth = Depends(AllUserAuth())):
return SuccessResponse(await crud.ProjectDetectDal(auth.db).put_data(data_id, data))
@app.get("/project/detect/{data_id}", summary="获取项目推理集合信息信息", tags=["项目推理集合信息"])
async def get_project_detect(data_id: int, db: AsyncSession = Depends(db_getter)):
schema = schemas.ProjectDetectSimpleOut
return SuccessResponse(await crud.ProjectDetectDal(db).get_data(data_id, v_schema=schema))
###########################################################
# 项目推理集合图片信息
###########################################################
@app.get("/project/detect/img", summary="获取项目推理集合图片信息列表", tags=["项目推理集合图片信息"])
async def get_project_detect_img_list(p: params.ProjectDetectImgParams = Depends(), auth: Auth = Depends(AllUserAuth())):
datas, count = await crud.ProjectDetectImgDal(auth.db).get_datas(**p.dict(), v_return_count=True)
return SuccessResponse(datas, count=count)
@app.post("/project/detect/img", summary="创建项目推理集合图片信息", tags=["项目推理集合图片信息"])
async def create_project_detect_img(data: schemas.ProjectDetectImg, auth: Auth = Depends(AllUserAuth())):
return SuccessResponse(await crud.ProjectDetectImgDal(auth.db).create_data(data=data))
@app.delete("/project/detect/img", summary="删除项目推理集合图片信息", description="硬删除", tags=["项目推理集合图片信息"])
async def delete_project_detect_img_list(ids: IdList = Depends(), auth: Auth = Depends(AllUserAuth())):
await crud.ProjectDetectImgDal(auth.db).delete_datas(ids=ids.ids, v_soft=False)
return SuccessResponse("删除成功")
@app.put("/project/detect/img/{data_id}", summary="更新项目推理集合图片信息", tags=["项目推理集合图片信息"])
async def put_project_detect_img(data_id: int, data: schemas.ProjectDetectImg, auth: Auth = Depends(AllUserAuth())):
return SuccessResponse(await crud.ProjectDetectImgDal(auth.db).put_data(data_id, data))
@app.get("/project/detect/img/{data_id}", summary="获取项目推理集合图片信息信息", tags=["项目推理集合图片信息"])
async def get_project_detect_img(data_id: int, db: AsyncSession = Depends(db_getter)):
schema = schemas.ProjectDetectImgSimpleOut
return SuccessResponse(await crud.ProjectDetectImgDal(db).get_data(data_id, v_schema=schema))
###########################################################
# 项目推理记录信息
###########################################################
@app.get("/project/detect/log", summary="获取项目推理记录信息列表", tags=["项目推理记录信息"])
async def get_project_detect_log_list(p: params.ProjectDetectLogParams = Depends(), auth: Auth = Depends(AllUserAuth())):
datas, count = await crud.ProjectDetectLogDal(auth.db).get_datas(**p.dict(), v_return_count=True)
return SuccessResponse(datas, count=count)
@app.post("/project/detect/log", summary="创建项目推理记录信息", tags=["项目推理记录信息"])
async def create_project_detect_log(data: schemas.ProjectDetectLog, auth: Auth = Depends(AllUserAuth())):
return SuccessResponse(await crud.ProjectDetectLogDal(auth.db).create_data(data=data))
@app.delete("/project/detect/log", summary="删除项目推理记录信息", description="硬删除", tags=["项目推理记录信息"])
async def delete_project_detect_log_list(ids: IdList = Depends(), auth: Auth = Depends(AllUserAuth())):
await crud.ProjectDetectLogDal(auth.db).delete_datas(ids=ids.ids, v_soft=False)
return SuccessResponse("删除成功")
@app.put("/project/detect/log/{data_id}", summary="更新项目推理记录信息", tags=["项目推理记录信息"])
async def put_project_detect_log(data_id: int, data: schemas.ProjectDetectLog, auth: Auth = Depends(AllUserAuth())):
return SuccessResponse(await crud.ProjectDetectLogDal(auth.db).put_data(data_id, data))
@app.get("/project/detect/log/{data_id}", summary="获取项目推理记录信息信息", tags=["项目推理记录信息"])
async def get_project_detect_log(data_id: int, db: AsyncSession = Depends(db_getter)):
schema = schemas.ProjectDetectLogSimpleOut
return SuccessResponse(await crud.ProjectDetectLogDal(db).get_data(data_id, v_schema=schema))
###########################################################
# 项目推理记录图片信息
###########################################################
@app.get("/project/detect/log/img", summary="获取项目推理记录图片信息列表", tags=["项目推理记录图片信息"])
async def get_project_detect_log_img_list(p: params.ProjectDetectLogImgParams = Depends(), auth: Auth = Depends(AllUserAuth())):
datas, count = await crud.ProjectDetectLogImgDal(auth.db).get_datas(**p.dict(), v_return_count=True)
return SuccessResponse(datas, count=count)
@app.post("/project/detect/log/img", summary="创建项目推理记录图片信息", tags=["项目推理记录图片信息"])
async def create_project_detect_log_img(data: schemas.ProjectDetectLogImg, auth: Auth = Depends(AllUserAuth())):
return SuccessResponse(await crud.ProjectDetectLogImgDal(auth.db).create_data(data=data))
@app.delete("/project/detect/log/img", summary="删除项目推理记录图片信息", description="硬删除", tags=["项目推理记录图片信息"])
async def delete_project_detect_log_img_list(ids: IdList = Depends(), auth: Auth = Depends(AllUserAuth())):
await crud.ProjectDetectLogImgDal(auth.db).delete_datas(ids=ids.ids, v_soft=False)
return SuccessResponse("删除成功")
@app.put("/project/detect/log/img/{data_id}", summary="更新项目推理记录图片信息", tags=["项目推理记录图片信息"])
async def put_project_detect_log_img(data_id: int, data: schemas.ProjectDetectLogImg, auth: Auth = Depends(AllUserAuth())):
return SuccessResponse(await crud.ProjectDetectLogImgDal(auth.db).put_data(data_id, data))
@app.get("/project/detect/log/img/{data_id}", summary="获取项目推理记录图片信息信息", tags=["项目推理记录图片信息"])
async def get_project_detect_log_img(data_id: int, db: AsyncSession = Depends(db_getter)):
schema = schemas.ProjectDetectLogImgSimpleOut
return SuccessResponse(await crud.ProjectDetectLogImgDal(db).get_data(data_id, v_schema=schema))