production_work_order.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. from pydantic import BaseModel, ConfigDict, Field
  2. from typing import Optional
  3. from datetime import datetime
  4. class ProductionWorkOrderBase(BaseModel):
  5. remark: Optional[str] = None
  6. class ProductionWorkOrderListQuery(BaseModel):
  7. page: int = 1
  8. page_size: int = 20
  9. keyword: Optional[str] = None
  10. work_order_no: Optional[str] = None
  11. work_order_status: Optional[str] = None
  12. work_order_type: Optional[str] = None
  13. reception_source: Optional[str] = None
  14. biz_type: Optional[str] = None
  15. protocol_no: Optional[str] = None
  16. sample_code: Optional[str] = None
  17. create_time_start: Optional[str] = None
  18. create_time_end: Optional[str] = None
  19. infusion_time_start: Optional[str] = None
  20. infusion_time_end: Optional[str] = None
  21. planned_start_time_start: Optional[str] = None
  22. planned_start_time_end: Optional[str] = None
  23. exclude_void_protocol: Optional[bool] = Field(True, description="是否排除关联协议无效态的入库工单")
  24. class ProductionWorkOrderComplete(BaseModel):
  25. conclusion: str = Field(..., description="生产结论 cg=成功 sb=失败,写入本次级联完成的任务")
  26. remark: Optional[str] = None
  27. class ProductionWorkOrderUpdate(BaseModel):
  28. model_config = ConfigDict(populate_by_name=True)
  29. remark: Optional[str] = Field(None, description="备注")
  30. class ProductionWorkOrderCreate(BaseModel):
  31. model_config = ConfigDict(populate_by_name=True)
  32. work_order_type: Optional[str] = Field("inbound", alias="workOrderType", description="工单类型 inbound/temporary")
  33. protocol_no: Optional[str] = Field(None, alias="protocolNo", description="协议号")
  34. sample_code: Optional[str] = Field(None, alias="sampleCode", description="样本编码")
  35. reception_source: Optional[str] = Field("cell_storage", alias="receptionSource", description="来源类型")
  36. remark: Optional[str] = Field(None, description="备注")
  37. class ProductionWorkOrderConfigureBody(BaseModel):
  38. model_config = ConfigDict(populate_by_name=True)
  39. task_name: Optional[str] = Field("", alias="taskName")
  40. assignee_user_id: str = Field(..., alias="assigneeUserId")
  41. task_type: Optional[str] = Field("cell_storage", alias="taskType")
  42. route_id: Optional[str] = Field(None, alias="routeId")
  43. description: Optional[str] = Field("", alias="description")
  44. remark: Optional[str] = Field("", alias="remark")