certflow.views.bom_import_widget module¶
BOM 零件牌号导入控件(目录扫描入库)
作为「计划导入」堆叠页的第二个标签页(与销售计划导入并列),复用
certflow.services.bom_material_service.scan_and_import 做目录递归扫描入库。
对应 CLI certflow bom import;--mode 对应本控件的「导入模式」四选一。
提供四种导入模式,UI 上明确告知用法与去重风险: - 清空重导(clear):清除全表后重导,结果干净、无重复;重建全表用; - 直接追加(append):不清空直接插入,同一文件重复导入会产生重复行; - 按文件刷新(refresh):已导入文件删旧行写最新内容,新文件追加; - 增量跳过已导入(skip):只导未入库文件,已存在文件(即便已更新)跳过。
默认目录与默认模式由配置 bom_import.default_folder / bom_import.default_mode
(config/import.yaml,经 !include 并入)驱动;本控件打开时自动预填目录、预选模式,
日常只扫新文件把 default_mode 设为 skip 即可,需重建全表时再改回 clear
或在 UI 手动切换,无需改代码。
导入在后台线程执行,避免阻塞 UI;通过 import_started / import_finished
信号通知外层(用于锁定导航)。
蓝图关联:docs/BLUEPRINT_QUERY_UNIFY.md 阶段 B1(BOM 导入 tab)。
- class certflow.views.bom_import_widget.BomImportWidget(db_manager=None, session=None, parent=None)[源代码]¶
基类:
QWidgetBOM 导入控件:目录选择 + 追加/清除选项 + 扫描入库 + 进度/日志。
- 参数:
db_manager (Any)
session (Any)
parent (QWidget | None)
- import_started¶
- import_finished¶
- staticMetaObject = PySide6.QtCore.QMetaObject("BomImportWidget" inherits "QWidget": Methods: #33 type=Signal, signature=import_started() #34 type=Signal, signature=import_finished() )¶