feat(models): Task/Product 模型扩充 + 4个Alembic迁移

Task 模型:
- 新增 received_at, completed_at, reject_reason, is_rework
- 新增 TaskRecord 模型 (remark + images JSON)
- 状态常量 PENDING/WIP/COMPLETED/REJECTED/ARCHIVED
- 全部时间字段改用北京时间 (get_beijing_time)

Product 模型:
- order_id → 可选; 新增 external_serial, current_location_id
- 新增 material_name/spec_model/category/material_type 快照字段
- 新增 overall_status (备货/生产/测试/维修/在库)

迁移:
- b2c3: HEX计数器Sequence + external_serial + order_id nullable
- c3d4: material快照4列
- d4e5: overall_status
- e5f6: task_records表
This commit is contained in:
2026-08-05 14:00:23 +08:00
parent 82f474f71f
commit e0c01a562f
9 changed files with 216 additions and 12 deletions

View File

@ -1,11 +1,12 @@
"""生产订单模型"""
import uuid
from datetime import datetime, timezone
from datetime import datetime
from sqlalchemy import String, DateTime
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import Mapped, mapped_column
from app.models.base import Base
from app.core.time_utils import get_beijing_time
class ProductionOrder(Base):
@ -24,7 +25,7 @@ class ProductionOrder(Base):
String(50), nullable=False, default="pending", comment="订单状态",
)
created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), comment="创建时间",
DateTime(timezone=True), default=get_beijing_time, comment="创建时间",
)
def __repr__(self) -> str: