fix: Day2就绪 — 删除硬化+索引补全+全局异常处理

## base_service.py — MaterialBase删除硬化
- 新增 BomTable 引用检查(bom_usage_count)
- 物料被BOM引用时禁止删除,提示「请先解除BOM绑定」

## models/base.py + bom.py — 缺失索引补全
- material_base: company_name + is_enabled 添加 index=True
- bom_table: is_enabled 添加 index=True

## __init__.py — 全局异常处理
- @app.errorhandler(ValueError) → 400 + 自定义消息
- @app.errorhandler(404/405) → 标准错误
- @app.errorhandler(Exception) → 500 + 通用消息
  堆栈仅记录服务器日志,不泄露到前端
This commit is contained in:
yueli
2026-07-16 14:14:43 +08:00
parent 382b461b68
commit 23fc10a25f
4 changed files with 40 additions and 6 deletions

View File

@ -13,7 +13,7 @@ class MaterialBase(db.Model):
# 1. 基础字段
id = db.Column(db.Integer, primary_key=True)
company_name = db.Column(db.String(255), comment='所属公司')
company_name = db.Column(db.String(255), index=True, comment='所属公司') # ★ 多租户过滤高频列
name = db.Column(db.String(255), nullable=False, index=True, comment='名称') # ★ 模糊搜索/精确定位高频列
common_name = db.Column(db.String(255), comment='俗名')
@ -34,7 +34,7 @@ class MaterialBase(db.Model):
manual_link_remark = db.Column(db.Text, default='', comment='说明书备注')
# 启用状态
is_enabled = db.Column(db.Boolean, default=True, comment='是否启用')
is_enabled = db.Column(db.Boolean, default=True, index=True, comment='是否启用') # ★ 状态过滤高频列
# 强制质检标记(采购入库时必须上传检测报告)
is_inspection_required = db.Column(db.Boolean, default=False, comment='是否强制要求质检')