Files
shanxia2.0/backend/app/schemas/production_task.py
T
zlwu 026b040db5 feat(schemas): add production module Pydantic schemas
Create 3 schema files for the production module:
- production_work_order.py: work order base, list query, complete
- production_task.py: task CRUD, steps, materials, outputs, inputs
- cell_product.py: cell product create, update, list query
2026-05-20 00:09:21 +08:00

94 lines
2.5 KiB
Python

from pydantic import BaseModel
from typing import Optional, List
from datetime import datetime
class ProductionTaskCreate(BaseModel):
work_order_id: str
task_name: Optional[str] = None
route_id: str
description: Optional[str] = None
remark: Optional[str] = None
class ProductionTaskListQuery(BaseModel):
page: int = 1
page_size: int = 20
work_order_id: Optional[str] = None
task_no: Optional[str] = None
task_status: Optional[str] = None
class ProductionTaskUpdate(BaseModel):
task_name: Optional[str] = None
description: Optional[str] = None
remark: Optional[str] = None
attachments: Optional[str] = None
class ProductionTaskStatusUpdate(BaseModel):
task_status: str
class TaskStepAdd(BaseModel):
process_code: Optional[str] = None
category_id: Optional[str] = None
process_name: Optional[str] = None
description: Optional[str] = None
equipment_name: Optional[str] = None
estimated_duration: Optional[str] = None
sop_ids: Optional[str] = None
class TaskStepUpdate(BaseModel):
process_name: Optional[str] = None
description: Optional[str] = None
equipment_name: Optional[str] = None
estimated_duration: Optional[str] = None
actual_duration: Optional[str] = None
sop_ids: Optional[str] = None
step_status: Optional[str] = None
class TaskStepMaterialItem(BaseModel):
material_code: Optional[str] = None
material_name: Optional[str] = None
spec: Optional[str] = None
spec_model: Optional[str] = None
standard_usage: Optional[str] = None
actual_usage: Optional[str] = None
unit: Optional[str] = None
is_key_material: Optional[str] = '0'
is_required: Optional[str] = '1'
remark: Optional[str] = None
class TaskStepOutputItem(BaseModel):
output_type_id: Optional[str] = None
output_name: Optional[str] = None
output_barcode: Optional[str] = None
class TaskStepDataCollectionItem(BaseModel):
collection_name: Optional[str] = None
unit: Optional[str] = None
collection_value: Optional[str] = None
class TaskInputItem(BaseModel):
input_type: str
input_id: Optional[str] = None
input_code: Optional[str] = None
input_name: Optional[str] = None
class TaskOutputItem(BaseModel):
cell_product_id: Optional[str] = None
storage_slot_id: Optional[str] = None
output_name: Optional[str] = None
output_barcode: Optional[str] = None
quantity: Optional[float] = None
unit: Optional[str] = None
remark: Optional[str] = None
attachments: Optional[str] = None