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

90 lines
4.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

from datetime import date, datetime
from pydantic import BaseModel, ConfigDict, Field
from pydantic.alias_generators import to_camel
from typing import Optional, List
from module_admin.entity.vo.warehouse_sample_vo import WarehouseSampleModel
class WarehouseReceiptModel(BaseModel):
"""
入库单信息模型
"""
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
receipt_id: Optional[int] = Field(default=None, description='入库单ID')
receipt_no: Optional[str] = Field(default=None, description='入库单号')
commission_no: Optional[str] = Field(default=None, description='样品委托单号')
client_unit: Optional[str] = Field(default=None, description='委托单位')
client_contact: Optional[str] = Field(default=None, description='委托人')
receipt_date: Optional[date] = Field(default=None, description='收样日期')
source_location: Optional[str] = Field(default=None, description='来源地')
delivery_person: Optional[str] = Field(default=None, description='送样人')
receipt_method: Optional[str] = Field(default=None, description='收样方式')
receipt_method_detail: Optional[str] = Field(default=None, description='收样方式详情')
receiver: Optional[str] = Field(default=None, description='收样人')
recorder: Optional[str] = Field(default=None, description='入库记录人')
purpose: Optional[str] = Field(default=None, description='来样目的')
purpose_detail: 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='更新时间')
sample_count: Optional[int] = Field(default=0, description='样品数量')
class WarehouseReceiptPageQueryModel(BaseModel):
"""
入库单分页查询模型
"""
model_config = ConfigDict(alias_generator=to_camel)
receipt_no: Optional[str] = Field(default=None, description='入库单号')
client_unit: Optional[str] = Field(default=None, description='委托单位')
client_contact: Optional[str] = Field(default=None, description='委托人')
receipt_date_start: Optional[date] = Field(default=None, description='收样开始日期')
receipt_date_end: Optional[date] = Field(default=None, description='收样结束日期')
purpose: 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_no: str = None,
client_unit: str = None, client_contact: str = None,
receipt_date_start: date = None, receipt_date_end: date = None,
purpose: str = None, status: str = None):
return cls(pageNum=page_num, pageSize=page_size, receiptNo=receipt_no,
clientUnit=client_unit, clientContact=client_contact,
receiptDateStart=receipt_date_start, receiptDateEnd=receipt_date_end,
purpose=purpose, status=status)
class AddWarehouseReceiptModel(WarehouseReceiptModel):
"""
新增入库单模型
"""
receipt_no: str = Field(description='入库单号')
samples: Optional[List[WarehouseSampleModel]] = Field(default=None, description='样品列表')
class EditWarehouseReceiptModel(WarehouseReceiptModel):
"""
编辑入库单模型
"""
receipt_id: int = Field(description='入库单ID')
samples: Optional[List[WarehouseSampleModel]] = Field(default=None, description='样品列表')
class DeleteWarehouseReceiptModel(BaseModel):
"""
删除入库单模型
"""
model_config = ConfigDict(alias_generator=to_camel)
receipt_ids: str = Field(description='入库单ID多个用逗号分隔')