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, 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='收样方式')
|
2025-12-29 22:22:13 +08:00
|
|
|
|
receipt_method_detail: Optional[str] = Field(default=None, description='收样方式详情')
|
2025-12-19 10:12:59 +08:00
|
|
|
|
receiver: Optional[str] = Field(default=None, description='收样人')
|
|
|
|
|
|
recorder: Optional[str] = Field(default=None, description='入库记录人')
|
|
|
|
|
|
purpose: Optional[str] = Field(default=None, description='来样目的')
|
2025-12-29 22:22:13 +08:00
|
|
|
|
purpose_detail: Optional[str] = Field(default=None, description='来样目的详情')
|
2025-12-19 10:12:59 +08:00
|
|
|
|
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,多个用逗号分隔')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|