ETest-Vue-FastAPI/ruoyi-fastapi-backend/module_admin/entity/vo/warehouse_sample_vo.py

87 lines
3.8 KiB
Python
Raw Normal View History

2025-12-19 10:12:59 +08:00
from datetime import date, datetime
from pydantic import BaseModel, ConfigDict, Field
from pydantic.alias_generators import to_camel
from typing import Optional
class WarehouseSampleModel(BaseModel):
"""
样品信息模型
"""
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
sample_id: Optional[int] = Field(default=None, description='样品ID')
receipt_id: Optional[int] = Field(default=None, description='入库单ID')
receipt_no: Optional[str] = Field(default=None, description='入库单号')
sample_model: Optional[str] = Field(default=None, description='样品型号')
sample_sn: Optional[str] = Field(default=None, description='样品SN号')
hardware_version: Optional[str] = Field(default=None, description='样品硬件版本号')
external_status: Optional[str] = Field(default=None, description='样品入库外测状态')
test_items: Optional[str] = Field(default=None, description='计划测试项')
test_deadline: Optional[date] = Field(default=None, description='计划测试截止日期')
actual_test_items: Optional[str] = Field(default=None, description='实际测试项')
delivery_date: Optional[date] = Field(default=None, description='出库交样日期')
delivery_method: Optional[str] = Field(default=None, description='出库交样方式')
delivery_person: Optional[str] = Field(default=None, description='出库交样人')
receive_person: Optional[str] = Field(default=None, description='出库接样人')
delivery_recorder: Optional[str] = Field(default=None, description='出库记录人')
status: Optional[str] = Field(default='0', description='状态')
remark: Optional[str] = Field(default=None, description='备注')
create_by: Optional[str] = Field(default=None, description='创建者')
create_time: Optional[datetime] = Field(default=None, description='创建时间')
update_by: Optional[str] = Field(default=None, description='更新者')
update_time: Optional[datetime] = Field(default=None, description='更新时间')
class WarehouseSamplePageQueryModel(BaseModel):
"""
样品分页查询模型
"""
model_config = ConfigDict(alias_generator=to_camel)
receipt_id: Optional[int] = Field(default=None, description='入库单ID')
receipt_no: Optional[str] = Field(default=None, description='入库单号')
sample_model: Optional[str] = Field(default=None, description='样品型号')
sample_sn: Optional[str] = Field(default=None, description='样品SN号')
external_status: Optional[str] = Field(default=None, description='样品入库外测状态')
status: Optional[str] = Field(default=None, description='状态')
page_num: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页记录数')
@classmethod
def as_query(cls, page_num: int = 1, page_size: int = 10, receipt_id: int = None,
receipt_no: str = None, sample_model: str = None, sample_sn: str = None,
external_status: str = None, status: str = None):
return cls(pageNum=page_num, pageSize=page_size, receiptId=receipt_id,
receiptNo=receipt_no, sampleModel=sample_model, sampleSn=sample_sn,
externalStatus=external_status, status=status)
class AddWarehouseSampleModel(WarehouseSampleModel):
"""
新增样品模型
"""
receipt_id: int = Field(description='入库单ID')
class EditWarehouseSampleModel(WarehouseSampleModel):
"""
编辑样品模型
"""
sample_id: int = Field(description='样品ID')
class DeleteWarehouseSampleModel(BaseModel):
"""
删除样品模型
"""
model_config = ConfigDict(alias_generator=to_camel)
sample_ids: str = Field(description='样品ID多个用逗号分隔')