☰
MetaERP“资产本体建模”往下接,把盘点当成本体上的一次“账实快照比对 + 图推理闭环”,而不是 Excel 对账。核心思路:盘点 = 对某个时点 Asset 的财务视图(账)、
2026/10/8 23:00:59 网站建设 项目流程

“资产本体建模”往下接,把盘点当成本体上的一次“账实快照比对 + 图推理闭环”,而不是 Excel 对账。

核心思路:

盘点 = 对某个时点Asset的财务视图(账)、实物视图(物)、责任视图(卡)做三图交集,差异自动归因到关系边。


一、盘点场景在本体里新增哪些类/边

在原有Asset / AssetBook / CostCenter / AssetTransaction基础上,扩展盘点域:

新类(Class)

含义

StocktakeTask

一次盘点任务(如2026年度全盘、CC-101抽盘)

StocktakeLine

单资产盘点行(账面引用 + 实盘结果)

PhysicalScan

扫码/RFID实盘事件(谁扫的、何时、GPS/工位)

AssetDiff

差异节点(盘亏/盘盈/信息不符/状态异常)

Custodian

保管责任人(人节点,不是部门字段)

新增语义边:

StocktakeTask ─contains→ StocktakeLine StocktakeLine ─refersTo→ Asset StocktakeLine ─hasScan→ PhysicalScan Asset ─keptBy→ Custodian (带 validFrom/validTo) Asset ─physicallyAt→ Location (实物位置,带时间区间) Asset ─recordedAt→ CostCenter (账面归属,带时间区间) StocktakeLine ─produces→ AssetDiff AssetDiff ─resolvedBy→ AssetTransaction (盘亏走报废/盘盈走新增)

关键分叉:账面位置(recordedAt)​ 和实物位置(physicallyAt)​ 拆成两条边,传统表混在一个字段里,所以永远对不齐。


二、具体示例:还是那台 CNC-2024-008

背景快照(盘点日 2026-06-30)

  • 账面:Asset.status=CAPITALIZED,集团账净值 102.1万,账面归属CC-205
  • 本体边:recordedAt(CC-205, validFrom=2025-07-01)
  • 实物边:physicallyAt(试制线工位W-07)
  • 保管人:keptBy(工号E1023, 张工)

现场扫码结果

项目

账面本体

实盘扫描

是否存在

存在

存在 ✅

位置

CC-205

实际在 W-07(同车间,一致)

状态

CAPITALIZED(在用)

设备停机,贴“待报废”标签

标签

CNC-2024-008

扫码读到同编码 ✅

附属件

主轴1根

主轴已拆走送修


三、本体视角下盘点怎么跑

步骤1:生成盘点任务(图查询出清单)

MATCH (t:StocktakeTask {year:2026}) MATCH (a:Asset)-[:hasBook]->(b:AssetBook {bookType:"GROUP"}) WHERE a.status IN ["CAPITALIZED","IDLE"] AND a.allocatedTo有效区间包含 2026-06-30 CREATE (t)-[:contains]->(:StocktakeLine {refAsset:a.assetCode})

→ 自动带出“账上所有未报废资产”,不靠手工导 Excel。


步骤2:实盘事件写入(边版本化)

手机/PDA扫码后落本体:

PhysicalScan(scanTime=2026-06-30T09:12, by=E1023, loc=W-07) → hasScan → StocktakeLine 同时触发: physicallyAt(W-07) 续期 状态观测节点:ObservedState(IDLE_PENDING_RETIRE)

步骤3:三图对齐,自动出差异节点

系统做三类图遍历比对:

比对维度

遍历路径

本例结果

有账有物

StocktakeLine→Asset∩PhysicalScan

命中

位置一致

recordedAtvsphysicallyAt

同车间,通过

状态一致

Asset.statusvsObservedState

❌ 账在用 / 实待报废

附属件一致

Asset→hasComponent→Spindlevs 扫描子件

❌ 主轴缺失

自动生成:

AssetDiff{ diffType: [STATUS_MISMATCH, COMPONENT_MISSING], severity: HIGH, bookNetValue: 1021000 }

步骤4:差异归因(本体推理,不是人肉判断)

写几条公理:

IF STATUS_MISMATCH AND ObservedState=待报废 AND 无RETIRE事务 THEN 建议动作 = 发起Retire预审 + 减值测试 IF COMPONENT_MISSING AND hasComponent存在 THEN 检查最近Maintenance工单,若无 → 标记盘亏子件 IF 有PhysicalScan无Asset节点 THEN 生成盘盈候选 → 走Addition流程 IF 有Asset节点无PhysicalScan(超时未扫) THEN 生成盘亏候选 → 走责任追溯

本例推理结果:

  • 不是“盘亏整台”,是整台状态错配 + 子件盘亏
  • 系统建议:①发起资产减值评估 ②主轴按备件盘亏 ③更新状态为“待报废”

步骤5:差异闭环到事务 + 会计引擎

审批通过后:

AssetTransaction(txType=RETIRE, date=2026-06-30) // 整机报废 AssetTransaction(txType=COMPONENT_WRITE_OFF) // 主轴核销 └─ generates → GlEntry(借:资产处置损益, 借:累计折旧, 贷:固定资产) └─ updates → Asset.status = RETIRED └─ closes → AssetDiff.status = RESOLVED

所有动作留边,审计可回溯:

“为什么2026年这台设备净值突然掉下来” → 图上一跳就能看到 盘点差异→报废事务→凭证。


四、本体建模让盘点多出的能力(对比传统FA盘点表)

传统做法

MetaERP本体做法

导出FA台账,Excel打勾

StocktakeTask图生成,按成本中心/工厂/责任人切片

位置对不上靠备注

recordedAtvsphysicallyAt双边时间图比对

盘亏整台处理

可拆到hasComponent子件级差异

差异靠人写原因

公理推理出“建议动作+责任链”

盘点完只改台账

差异节点闭环到AssetTransaction+ SLA凭证

问“张工管哪些异常资产”要写SQL

图遍历Custodian(E1023)←keptBy←Asset←produces←AssetDiff


五、落地四步(可直接照抄)

  1. 扩本体类:加StocktakeTask / StocktakeLine / PhysicalScan / AssetDiff / Custodian
  2. 拆双边:把“账面位置”“实物位置”“保管人”全拆成带有效期的关系边
  3. 写盘点公理:状态错配、子件缺失、超时未扫、有物无账 → 各映射处理事务
  4. 接采集端:RFID/二维码扫描事件 → 封装为PhysicalScan事件,不直接改表,走本体事务入口

六、一句话串起来

用本体做资产盘点,就是把“账、卡、物”拆成三张可带时间边的图,扫码事件灌进来后,让系统自己遍历出差异、推理出原因、闭环到报废/新增凭证,而不是年底拿Excel对编号。


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询