Files
pickling-mes/backend/app/schemas/quality.py
wangyu b461f0d2f8 feat: 重构质量管理和设备巡检模块
质量管理: 由平铺记录改为任务制工作流(qc_task/qc_task_item/qc_defect三表)
设备巡检: 由点位+记录改为巡检模板制(eqp_checklist/item/record/detail四表)
前端: Quality.vue 支持任务列表+检验项详情+缺陷记录双Tab
前端: Inspection.vue 支持模板管理+项目维护+巡检记录+明细查看

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 16:29:02 +08:00

137 lines
3.8 KiB
Python

from pydantic import BaseModel
from typing import Optional, List
from datetime import datetime
class QcTaskCreate(BaseModel):
task_code: str
coil_no: Optional[str] = None
task_type: Optional[str] = None
scheme_name: Optional[str] = None
inspect_user: Optional[str] = None
remark: Optional[str] = None
class QcTaskUpdate(BaseModel):
coil_no: Optional[str] = None
task_type: Optional[str] = None
scheme_name: Optional[str] = None
status: Optional[int] = None
inspect_user: Optional[str] = None
inspect_time: Optional[datetime] = None
audit_user: Optional[str] = None
audit_time: Optional[datetime] = None
result: Optional[str] = None
remark: Optional[str] = None
class QcTaskItemOut(BaseModel):
id: int
task_id: int
item_name: str
item_type: Optional[str]
standard_value: Optional[float]
upper_limit: Optional[float]
lower_limit: Optional[float]
unit: Optional[str]
inspect_value: Optional[str]
is_qualified: Optional[int]
judge_result: Optional[str]
inspect_user: Optional[str]
inspect_time: Optional[datetime]
created_at: datetime
class Config:
from_attributes = True
class QcTaskItemCreate(BaseModel):
task_id: int
item_name: str
item_type: Optional[str] = None
standard_value: Optional[float] = None
upper_limit: Optional[float] = None
lower_limit: Optional[float] = None
unit: Optional[str] = None
inspect_value: Optional[str] = None
is_qualified: Optional[int] = None
judge_result: Optional[str] = None
inspect_user: Optional[str] = None
inspect_time: Optional[datetime] = None
class QcTaskItemUpdate(BaseModel):
inspect_value: Optional[str] = None
is_qualified: Optional[int] = None
judge_result: Optional[str] = None
inspect_user: Optional[str] = None
inspect_time: Optional[datetime] = None
class QcTaskOut(BaseModel):
id: int
task_code: str
coil_no: Optional[str]
task_type: Optional[str]
scheme_name: Optional[str]
status: int
inspect_user: Optional[str]
inspect_time: Optional[datetime]
audit_user: Optional[str]
audit_time: Optional[datetime]
result: Optional[str]
remark: Optional[str]
created_at: datetime
class Config:
from_attributes = True
class QcDefectCreate(BaseModel):
coil_no: Optional[str] = None
production_line: Optional[str] = None
position: Optional[str] = None
plate_surface: Optional[str] = None
defect_code: Optional[str] = None
defect_type: Optional[str] = None
defect_rate: Optional[float] = None
defect_weight: Optional[float] = None
degree: Optional[str] = None
judge_level: Optional[str] = None
judge_by: Optional[str] = None
judge_time: Optional[datetime] = None
main_mark: Optional[int] = None
whole_coil_mark: Optional[int] = None
remark: Optional[str] = None
class QcDefectUpdate(BaseModel):
defect_type: Optional[str] = None
defect_rate: Optional[float] = None
defect_weight: Optional[float] = None
degree: Optional[str] = None
judge_level: Optional[str] = None
judge_by: Optional[str] = None
judge_time: Optional[datetime] = None
remark: Optional[str] = None
class QcDefectOut(BaseModel):
id: int
coil_no: Optional[str]
production_line: Optional[str]
position: Optional[str]
plate_surface: Optional[str]
defect_code: Optional[str]
defect_type: Optional[str]
defect_rate: Optional[float]
defect_weight: Optional[float]
degree: Optional[str]
judge_level: Optional[str]
judge_by: Optional[str]
judge_time: Optional[datetime]
main_mark: Optional[int]
whole_coil_mark: Optional[int]
remark: Optional[str]
created_at: datetime
class Config:
from_attributes = True