格言格语/离线填报

服务端解析与写表

把离线填报的导出结果解析为业务数据,并完成主子表、明细、签名与附件的正式入库。

导出结果回到活字格后,还需要服务端命令把它解析为业务数据并写入数据表。解析工作越依赖“表单定义”而不是“字段外观”,后续就越稳定。

解析原则

  1. patternIdschemaVersion 找到对应表单定义,再按定义把 itemId 映射到业务字段;不要依赖 itemId 中下划线的数量或固定位置去猜测表关系。
  2. 顶层字段(如 PDA_Inspection_TaskNo)通常是主表数据;子表、主子表拆分应依据表单定义或服务端映射配置完成。
  3. listItem 返回的是 JSON 字符串,需先反序列化再逐行写入子表。
  4. signatureItem 返回的是 JSON 字符串,反序列化后可按用户逐个处理签名。
  5. statusisReadcreatedTimeupdatedTime 可原样保存为填报记录元数据;是否为“已上传”以业务写表结果为准,不应依赖 HAC 的本地状态。
  6. 图片与文件的 values 是服务器附件临时文件标识,只有完成写表后附件才正式归属业务记录。
图片占位
itemId 到业务字段的映射示意

建议准备一张映射图:左侧列出导出结果中的 itemId,中间是表单定义或服务端映射配置,右侧标出它应写入的主表、子表或附件字段。

示例可用 PDA_Inspection_TaskNo 与 PDA_Inspection_Issues_Description,分别指向主表任务号和问题子表描述。

主数据解析

导出的每条记录通常对应业务主表中的一条数据。解析时可以按下面步骤处理:

  1. records 中取出一条记录,recordId 可作为设备端流水标识。
  2. 使用 patternId 找到当前记录使用的表单定义版本。
  3. 读取 values,把表单定义中属于主表的 itemId 映射为主表字段。
  4. recordIdcreatedTimeupdatedTime 等元数据按需要存入主表,便于后续核对与追溯。

itemId 示例:

导出结果 key可能的业务含义建议的处理方式
PDA_Inspection_TaskNo巡检任务编号写入主表字段
PDA_Inspection_TaskDate巡检日期写入主表字段
PDA_Inspection_Issues_Description问题明细中的问题描述作为 listItem 子项写入子表

注意,这里的“可能含义”只是示例。实际项目必须由表单定义或服务端映射配置决定,禁止靠 itemId 文本特征推断。

主子表与明细列表

明细列表在导出结果中保持 JSON 字符串。假设配置了一个“问题列表”listItem,其回传值可能类似:

"[{\"description\":\"挡鼠板破损\",\"level\":\"high\"}]"

写入时按以下步骤处理:

  1. 先找到该 listItemchildren 模板,确认每一行包含哪些子 field
  2. 反序列化列表字符串,得到行数组。
  3. 建立子表记录,并写入主表记录 ID 作为外键。
  4. 逐行把子 fielditemId 映射到子表字段。

listItem 本身不参与字段级解析,因此服务端需要自行完成反序列化、行循环和子表写入。

签名处理

signatureItem 的回传值同样是 JSON 字符串,上传完成后 fileName 会被替换为服务器附件临时文件标识。示例:

"[{\"userName\":\"张三\",\"fileName\":\"TEMP_SIGNATURE_ID_0001\",\"updateTime\":46372.6046875}]"

服务端处理签名时:

  1. 反序列化签名字符串。
  2. 逐个读取签名人员的 userName 与签名文件 fileName
  3. 在需要保存签名的业务表中写入对应字段,或在单独的签名子表中按人员保存。

附件正式归属

导出阶段上传的图片、文件和签名只得到附件临时文件标识。把附件从“临时”变为“正式”,需要在业务写表时完成。

常见做法是:

  1. 写表前先创建主表或子表记录。
  2. 通过附件临时文件标识读取活字格服务器临时目录中的文件。
  3. 将附件移动到业务附件目录,并更新业务表中存储的附件路径或标识。
  4. 只有业务记录已经成功写入,才允许后续删除设备上对应的已读记录。
图片占位
附件从临时目录到正式归属的时序

建议准备一张时序或流程图,展示上传命令把附件放到临时目录、服务端解析导出结果、写表后附件正式归属、设备记录标记并清理。

图中可强调“写表成功前不删除设备记录”,用红色或警示色标出禁止提前删除的边界。

回传后的确认动作

业务写表完成并确认数据安全后,再回到“上传离线表单”命令完成设备数据维护:

  1. 使用“标记离线记录已导出”,传入 项目编号 与记录编号。
  2. 数据确认安全落库后,使用“删除已读离线记录”清理已读记录。
  3. 整个项目确认不再需要时,再使用“删除离线表单项目”。

这些命令的参数与使用时机见回传填报数据,完整页面编排见典型页面流程

本页目录