Skip to content

库存管理 ​

库存管理提供机库定义、物品 CRUD、蓝图管理和加权平均成本计算。

数据模型 ​

库存数据存储在 user.db 中(services/inventory_manager.py):

机库(hangars) ​

字段类型说明
idINTEGER PK自增主键
nameTEXT UNIQUE机库名称
notesTEXT备注

默认机库:矿仓、组件仓、产品仓、通用仓库

库存物品(inventory_items) ​

字段类型说明
idINTEGER PK自增主键
hangar_idINTEGER FK所属机库
type_idINTEGER物品 ID
quantityINTEGER数量
cost_priceREAL加权平均成本价
created_atTEXT入库时间

唯一索引:(hangar_id, type_id) — 同一机库同物品只有一条记录。

蓝图(user_blueprints) ​

字段类型说明
idINTEGER PK自增主键
hangar_idINTEGER FK所属机库
blueprint_type_idINTEGER蓝图物品 ID
is_bpoINTEGER1=BPO(原件),0=BPC(拷贝件)
me_levelINTEGER材料效率等级(0-10)
te_levelINTEGER技术效率等级(0-20)
runsINTEGER剩余可运行次数(BPC)
quantityINTEGER数量
notesTEXT备注

加权平均成本 ​

当多次入库同一物品时,成本按加权平均计算:

新均价 = (旧数量 × 旧均价 + 新数量 × 新单价) / (旧数量 + 新数量)

这个成本用于制造计划的「个人利润率」计算,确保利润评估反映你的实际持有成本。

库存界面 ​

仓库页已迁到 QML(原 ui_pyside6/views/inventory/ 目录随迁移整体移除),现在 ui_qml/ 下:

文件功能
ui_qml/qml/pages/StoragePage.qml仓库管理页(机库管理 / 蓝图管理 两个 Tab)
ui_qml/bridge/inventory_bridge.pyQML ↔ 既有服务 / worker 的通道(含多选与对话框编排)
ui_qml/models/inventory_qml_models.pyQML 表适配(机库物品 9 列 / 蓝图 13 列)
ui_qml/models/inventory_helpers.py公共表模型与常量(InvTableModel / BlueprintTableModel)
ui_qml/workers/blueprint_import_worker.py蓝图剪贴板批量导入 Worker

排序 ​

两张表都支持点表头排序(再点同列反向,▲/▼ 画在表头)。

排序状态归模型所有,刷新后照旧生效 —— 加入制造规划、改蓝图等级/流程数、移库、 切机库、重新过滤等操作换掉整份行数据后,表格仍按当前列与方向排,不会悄悄跳回原始顺序 (set_rows 里补 reapply_sort())。换列时从升序开始,与 QTableView 的手感一致。

API 参考 ​

详见 services/inventory_manager.py。