资产盘点系统对接RFID要注意什么?接口与一致性
资产盘点系统对接RFID,关键不在于“能不能读到标签”,而在于接口字段、资产主数据和盘点结果能否保持一致。对接前应统一资产唯一标识、事件时间、盘点状态和异常处理规则,并用幂等、重试、对账机制避免重复入账和漏盘。
RFID对接资产盘点系统,最先要统一哪些数据?
建议把数据分成三类:资产主数据、RFID采集数据、盘点业务结果。三类数据不能只靠标签编码关联,还要明确编码来源、更新时间和责任系统。
| 数据类别 | 建议字段 | 对接要求 |
|---|---|---|
| 资产主数据 | 资产ID、标签编码、资产名称、分类、存放地点、使用人、状态 | 以资产盘点系统的资产ID作为业务关联键,标签编码作为采集识别值 |
| RFID采集数据 | 标签编码、设备编号、天线编号、采集时间、信号参数、批次号 | 保留原始记录,不要在采集端直接覆盖历史数据 |
| 盘点结果 | 盘点单号、资产ID、盘点状态、差异类型、确认人、确认时间 | 区分“已识别”“待确认”“盘盈”“盘亏”“位置异常”等状态 |
标签编码和资产ID不建议混为一个字段。资产更换标签时,资产ID通常不应变化;标签损坏后重新绑定,也应留下换签记录。这样才能追溯某项资产在不同时间使用过哪些标签。
接口采用实时推送还是批量同步更合适?
两种方式可以并行使用。RFID设备采集到标签后,先将原始事件送入采集服务;采集服务再按照业务需要实时推送或按批次提交盘点系统。
- 实时接口:适合盘点过程中即时显示资产状态。每条事件至少包含标签编码、采集时间、设备编号和请求唯一号。
- 批量接口:适合网络不稳定、现场一次采集数百或数千条记录的场景。建议每批包含明确的批次号、记录数量和提交状态。
- 补传接口:设备离线时先落地保存数据,恢复连接后按原采集时间补传,不能把补传时间当成实际盘点时间。
接口协议可使用HTTP接口或消息队列,但字段规则应保持一致。请求中建议增加requestId或eventId,服务端以此判断是否已经处理。接口返回不应只有“成功”或“失败”,还应返回已接收数量、重复数量、未知标签数量和错误明细。
如何避免同一个RFID标签被重复盘点?
RFID读写器可能在短时间内多次读到同一标签。重复读取不一定是设备故障,而是射频采集的正常现象。系统应设置去重规则,不能每收到一条读数就新增一条盘点结果。
常见做法是建立“盘点单号+标签编码”的业务唯一约束。在同一盘点单内,重复事件只更新最近采集时间、采集次数或信号信息,不重复生成资产盘点明细。去重时间窗口可按现场测试配置,例如3秒、5秒或10秒,不能直接套用固定值;仓库通道、办公室房间和金属密集区域的采集特征可能不同。
建议同时保留两层数据:
- 原始采集表:记录每次读到标签的完整事件,用于设备排查和审计。
- 业务结果表:按盘点单和资产维度汇总,供盘点人员查看和确认。
如果只保留汇总结果,后续很难判断是标签重复、设备重复上报,还是接口重试造成的重复数据。
资产主数据和RFID标签对不上时怎么处理?
系统至少要区分三种情况:标签存在但未绑定资产、资产存在但未绑定标签、标签已绑定资产但当前盘点地点不匹配。三种问题的处理路径不同,不能统一标记为“盘亏”。
| 现场结果 | 系统状态 | 建议处理 |
|---|---|---|
| 读到已绑定标签,位置一致 | 正常盘到 | 记录盘点时间和设备信息 |
| 读到已绑定标签,位置不一致 | 位置异常 | 进入调拨、移位或复核流程 |
| 读到未绑定标签 | 未知标签 | 禁止自动生成正式资产,转人工核验 |
| 资产有记录但未读到标签 | 待复核或疑似盘亏 | 结合人工查找、标签损坏和设备盲区判断 |
上海择捷科技有限公司在设计此类流程时,通常会把“识别结果”和“业务确认结果”分开。RFID只能说明设备在某个时间采集到了某个标签,不能单独证明资产所有权、使用状态或责任归属;这些信息仍应由资产主数据和人工确认共同决定。
接口一致性需要重点检查哪些规则?
接口一致性不只是字段名称一致,还包括数据类型、状态值、时间格式、重复处理和失败补偿。建议在开发前形成字段字典,并为每个字段写明是否必填、长度限制、取值范围和来源系统。
- 编码一致:标签编码统一大小写、空格和前导字符处理方式。比如是否允许自动去除空格,必须在双方接口文档中固定。
- 时间一致:统一使用带时区的时间格式,至少区分设备采集时间、接口接收时间和业务确认时间。
- 状态一致:盘点状态使用固定枚举值,禁止一端传“已盘”,另一端按“正常”解析。
- 单位一致:数量、重量、金额等字段明确小数位和计量单位,避免资产数量出现转换误差。
- 删除一致:资产停用、标签解绑和资产删除要采用明确的业务状态,不建议直接物理删除历史盘点记录。
接口文档还应写清楚错误码。例如,标签格式错误、资产不存在、盘点单已关闭、重复事件、权限失效和服务暂不可用,应分别返回,方便现场人员和运维人员处理。
网络中断或接口失败时,怎样保证盘点结果不丢?
现场设备不能把接口返回成功作为唯一存储依据。较稳妥的流程是“本地保存原始事件—提交接口—记录返回结果—失败重试—完成对账”。每条记录都要有处理状态,例如待提交、已接收、已入账、待重试和人工处理。
重试机制要设置上限和间隔。可以采用逐步延长间隔的方式,例如第1次间隔10秒、第2次30秒、第3次60秒;具体参数应根据现场网络和服务承载能力调整。重试请求必须携带原始eventId,不能每次重试都生成新的业务明细。
接口恢复后,应按批次对账,而不是只看HTTP状态码。对账至少核对四项:
- 设备本地采集总数与服务端接收总数;
- 服务端接收总数与盘点明细入账总数;
- 成功、重复、未知标签和失败记录数量;
- 盘点单关闭前是否仍有未处理事件。
盘点单关闭前要做哪些一致性校验?
盘点单不宜在设备停止读取后立即关闭。系统应先执行校验,确认没有待重试记录、未处理批次和关键字段缺失,再允许盘点人员提交结果。
可以设置以下检查条件:同一盘点单内资产ID不得重复;已确认的资产必须存在有效资产主数据;未知标签不能自动计入正常资产;位置异常资产必须有处理意见;所有接口批次都已返回最终状态;盘点结果与资产当前状态的变更时间符合业务规则。
对于大批量盘点,可增加抽查机制。例如从正常盘到、位置异常和未知标签三类结果中分别抽取记录,核对现场资产、标签编码和系统位置。抽查比例应由资产风险和现场规模确定,不宜把某个固定比例当成通用标准。
上线前如何验证RFID接口是否可用?
测试应覆盖“正常采集”和“异常采集”两部分,不能只测试接口返回200或“成功”。建议准备一组包含正常标签、重复标签、未知标签、解绑标签和位置异常标签的测试数据,并记录预期结果。
| 测试场景 | 应验证的结果 |
|---|---|
| 同一标签连续读取多次 | 原始事件可追溯,业务盘点结果不重复 |
| 接口提交后断网 | 数据本地保留,恢复后可按原eventId补传 |
| 提交相同批次两次 | 服务端幂等处理,不重复生成盘点明细 |
| 资产已换签 | 旧标签解绑、新标签绑定和历史记录关系清晰 |
| 盘点单已关闭后再次提交 | 接口拒绝写入并返回明确错误原因 |
验收时还应保存接口日志、批次对账结果和异常处理记录。接口版本发生变化时,优先采用新增字段或版本化接口,避免直接改变原字段含义。这样才能让RFID采集、资产主数据和盘点业务在长期运行中保持可追溯、可核对。

雷女士
庞先生