Files
ledgerly-docs/dev/bill-fields.md
T
rosercode 923d6db5c0 docs: 同步汇账最新功能,新增智能查数、账单关系等文档
对照 ledgerly 自文档上次更新以来的全部改动,补充新功能文档、修正品牌与版本残留,并新增下载与安装页;配图已重新截取并上传 OSS,本地截图目录不纳入版本管理。

变更内容:
- 新增「智能查数」「账单关系」两个使用文档页,并登记侧边栏与总览
- 设置页扩充为八个面板(账号安全、数据库实时进度、外观、导航等)并改为即时保存
- 收支记录补充关系列、批量操作、AI 搜索浮窗、可配置分页与「账单详情」弹窗
- 统计面板补充饼图/渠道图下钻与筛选双向联动;规则管理补充批量删除
- AI 能力补充智能查数与关系命名;新增下载与安装页
- 开发文档同步:AI 13 类调用、数据模型 24 张表、API、前端偏好、构建部署
- 统一「汇账 Ledgerly」品牌与「设置/日志」菜单文案,版本号对齐 0.1
- 截图脚本新增账单详情等场景并更新登记

说明:
- download.md 的 OSS 下载链接保持待发布产物回填,暂不调整
- 已通过 npm run docs:build 与 npm run typecheck:scripts
2026-09-26 21:57:38 +08:00

3.4 KiB
Raw Blame History

账单字段说明

本章说明支付宝「交易记录明细查询」导出的 CSV 在导入本系统时,各字段的读取与丢弃情况,可作为开发新解析器或调整字段映射的参考。

样例与实现位置

  • 编码:GBK(解析器兼容 UTF-8 / UTF-8 BOM)
  • 解析器:src/main/java/cn/rosercode/ledgerly/importer/AlipayBillParser.java
  • 落库服务:src/main/java/cn/rosercode/ledgerly/service/impl/BillImportServiceImpl.java

文件结构

位置 内容 是否处理
第 1 行 支付宝交易记录明细查询 忽略
第 2 行 账号:[...] 忽略
第 3 行 起始日期:[...] 终止日期:[...] 忽略
第 4 行 ---交易记录明细列表--- 忽略
第 5 行 表头(以「交易号」开头) 作为列定位依据
数据行 每行一笔交易 逐行解析
结尾统计 待收入/已支出/待支出、导出时间、用户 忽略

解析器通过「以 交易号 开头」定位表头行;遇到空行、--- 分隔线或 共 开头的统计行即结束。

CSV 完整表头(16 列)

序号 列名 序号 列名
1 交易号 9 商品名称
2 商家订单号 10 金额(元)
3 交易创建时间 11 收/支
4 付款时间 12 交易状态
5 最近修改时间 13 服务费(元)
6 交易来源地 14 成功退款(元)
7 类型 15 备注
8 交易对方 16 资金状态

完全丢弃的字段(7 个)

列名 说明
商家订单号 未使用
最近修改时间 未使用
交易来源地 未使用
类型 未使用,改用「收/支」推断类型
服务费(元) 未使用
成功退款(元) 未使用
备注 支付宝自带备注被丢弃;系统备注由「交易对方 · 商品名称」拼接生成

读取但未落库的字段(3 个)

列名 用途
交易状态 仅用于类型推断与预览展示
资金状态 仅用于「不计收支」行的类型推断
交易创建时间 仅当「付款时间」为空时作为交易时间兜底

落库映射(写入 t_transaction)

CSV 列 数据库字段 说明
交易号 external_no 导入去重键
付款时间(缺失时用交易创建时间) transaction_time 交易发生时间
金额(元) amount 去除千分位逗号后解析
收/支 type + include_in_stats 「不计收支」默认 include_in_stats = 0
交易对方 + 商品名称 remark 拼接为「交易对方 · 商品名称」,截断至 255 字符
— channel 固定为 ALIPAY
— category_id 取用户选择的默认分类;未选择则为 NULL

类型推断规则

收/支 交易状态 / 资金状态 推断类型
支出 — EXPENSE
收入 — INCOME
不计收支 交易状态含「退款」 INCOME
不计收支 资金状态为「已收入」 INCOME
不计收支 其他(如「交易关闭」) EXPENSE

可能的后续增强

  1. 将支付宝「备注」并入系统 remark(当前完全丢失)。
  2. 新增字段记录「服务费」/「成功退款」。
  3. 保留「商家订单号」作为辅助去重或展示。

相关文档