Files
uniprop-manual/prop-acc/scenarios/adhoc/receipt-miniapp-pdf-download.md
Willie 35c0147a7b P3.5: prop-acc 启用子模块嵌套(adhoc/),应对大型业务域扩展
背景:
单纯按 UDAS 严格扁平,prop-acc/scenarios/ 装齐 7 子模块后预计 100-150
篇 .md 单一文件夹,Explorer 无法浏览、Quartz folder page 无法阅读。

扩展规则(已写入 SKILL.md 多域章节 + multi-domain.md 第 10 节):
- 单类型文件夹文件数 > 30 且能按业务子模块分组时,启用嵌套
- 路径:<domain>/<type>/<sub-feature>/<file>.md
- 文件名去 <sub-feature>- 前缀(路径已表达)
- title 三段式:<domain> · <sub-feature> · <名>
- frontmatter 新增 sub_feature 字段(便于 RAG 过滤)
- 跨子模块文档落在 <domain>/<type>/(不进子文件夹),与"跨域→cross/"对称

本次迁移:
- prop-acc/concepts/adhoc-*.md (3)  → prop-acc/concepts/adhoc/*.md
- prop-acc/scenarios/adhoc-*.md (25) → prop-acc/scenarios/adhoc/*.md
- 每个文件:title 加 adhoc 段、aliases 追加旧 prop-acc · 前缀形式(兼容)、
  新增 sub_feature: adhoc 字段

WikiLink 解析未受影响:
- 既有 [[场景-A流-...]] 等 200+ 引用通过 aliases (含旧 basename) 解析
- 新引用可用 [[adhoc · 前台购买 IC 卡]] 或 [[prop-acc · adhoc · 前台购买 IC 卡]]
- 各域 knowledge-map.md 内 WikiLink 全部仍有效

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 20:55:59 +08:00

207 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: prop-acc · adhoc · 场景 - 收据 - 小程序自助下载 PDF
aliases:
- prop-acc · 场景 - 收据 - 小程序自助下载 PDF
- 场景 - 收据 - 小程序自助下载 PDF
- 场景-收据-小程序自助下载PDF
tags:
- 场景
- prop-acc
- 一次性收费
- 业务场景
- 收据凭证
audience:
- 业户
status: 已发布
sub_feature: adhoc
last_review: 2026-05-25
code_version: 2026-05-22
---
# 场景:小程序自助下载 PDF 收据
业户在小程序里**自己下载电子收据**。无需联系物业,24h 自助。
> [!success] 推荐路径
> 这是最方便的收据获取方式。任何时候、任何手机、任何业户都能自助操作。
## 典型情境
> [!example] 真实情境
> 周三晚上 10 点,陈太太需要把上个月在物业买充电桩电费的收据 PDF 发给公司财务报销。她不想等明天物业上班,**直接在小程序里下载**。
## 业户视角
### 第 1 步:打开小程序
进入"我家 → 我的订单"
### 第 2 步:找到目标订单
在"已完成"列表里找:
```
我的订单 → 已完成
├── 游泳卡 × 2 ¥40 2026-05-20
│ 订单号 CO-20260520-XXX
│ [查看详情] [📥下载收据]
├── 充电桩电费 ¥200 2026-05-15 ← 这一笔
│ 订单号 CO-20260515-YYY
│ [查看详情] [📥下载收据]
└── ...
```
### 第 3 步:点"下载收据"
```
正在生成 PDF...
✅ 收据已生成
[在微信中打开] [保存到手机]
```
### 第 4 步:转发给财务
- **转发到微信好友**(公司财务)
- **保存到手机相册**(图片格式更通用)
- **保存到微信文件**(后续打开还能用)
- **打印** —— 微信里支持调用蓝牙打印机
> [!success] 完成
> 全程 1 分钟,无需任何外部协助。
## 您能下载的所有收据
> [!info] 全部历史
> 小程序"已完成"列表展示**该业户的所有历史订单**,无时间限制。理论上 5 年前的订单还能下载收据。
如果列表太多,可以筛选:
- 按时间(月 / 季 / 年)
- 按项目类型(IC 卡 / 装修证 / 泳票 / 充电桩)
- 按金额范围
## PDF 收据长什么样?
```
┌─────────────────────────────────────┐
│ 鸿基物业管理有限公司 │
│ 收 据 │
│ │
│ 收据号:R-20260515-XXX │
│ 日期:2026-05-15 14:30 │
│ ───────────────────────────────── │
│ 收款方:鸿基物业管理有限公司 │
│ 付款方:陈XX(房号 12-3-501) │
│ ───────────────────────────────── │
│ 项目 数量 金额 │
│ ───────────────────────────────── │
│ 充电桩电费充值 1 ¥200.00 │
│ ───────────────────────────────── │
│ 合计 ¥200.00 │
│ │
│ 支付方式:微信支付 │
│ 支付时间:2026-05-15 14:30:25 │
│ 订单号:CO-20260515-YYY │
│ │
│ [电子公章] │
└─────────────────────────────────────┘
```
> [!info] 关于电子公章
> PDF 上的电子公章是**预先嵌入模板**的物业印章图像。**与纸质收据法律效力相同**,但部分公司财务可能要求另开纸质章 —— 取决于公司政策。
## 系统流程
```mermaid
sequenceDiagram
participant 业户
participant 小程序
participant 系统
participant PDF生成器
业户->>小程序: 点击"下载收据"
小程序->>系统: GET /receipts/{id}/pdf
系统->>系统: 查 Receipt 数据
alt 收据状态正常
系统->>PDF生成器: 渲染 PDF
PDF生成器-->>系统: PDF 流
系统-->>小程序: 返回 PDF
小程序-->>业户: 显示"在微信中打开"
else 收据已作废
系统-->>小程序: 返回 PDF (含"已作废"水印)
小程序-->>业户: 显示带水印的 PDF
end
```
> [!info] 重新下载多少次都不影响
> 每次下载都是从数据库**实时生成 PDF**,不修改任何数据。下载 100 次和下载 1 次效果一样。
## 几种特殊情况
### 1. 收据已被作废
如果订单走过 [[场景-已收款作废]]:
- PDF 上会加 **"已作废" 红色水印**
- 业户依然能下载,作为"作废存档"
- **不能拿这张报销**(财务会看出水印)
### 2. 业户的微信换了手机
> [!question] 换手机后还能看到历史订单吗?
> **能**。订单关联**业户档案**(身份证 / 手机号),不绑定具体设备。新手机登录同一微信即可。
### 3. 业户换了手机号
> [!warning] 这种情况要联系物业
> 业户手机号变了 → **小程序登录账号变了**。需要物业**人工绑定新手机号**到原业户档案。否则新账号看不到旧订单。
### 4. 已经离开小区的前业户
> [!info] 还能下载
> 即使业户**搬走了**(`CommunityUserProfile.status = inactive`),只要数据没删,小程序里依然能看历史订单。**收据是历史凭证,不应该因离开而消失**。
## 常见问题
> [!question] 我能批量下载多张收据吗?
> 当前**一次只能下一张**。如果你要把一整年的收据打包下载(报销季),可以联系物业:
> - 物业可在 Filament 后台**导出某业户所有订单的 Excel**
> - 部分物业有"年度账单 PDF"功能(待补)
> [!question] PDF 文件多大?
> 通常 50-150 KB。微信里直接打开预览,不占流量。
> [!question] PDF 能修改吗?
> **不能**(无密码,但 PDF 本身不可编辑)。如果想加密 / 防伪,需要技术升级(挂 TODO)。
> [!question] 我的收据上信息错了(房号错)怎么办?
> 走 [[场景-已收款作废]] + 重做。重做时收据信息自动正确。**不能直接改 PDF**(也不能改数据库 Receipt 记录,违反审计完整性)。
> [!question] 收据上的电子公章会不会过期?
> 不会。电子公章是 PDF 图像,长期有效。
## 与现场打印的对照
| 维度 | 现场打印纸质收据 | 小程序下载 PDF(本场景) |
|---|---|---|
| 时机 | 仅前台营业时间 | **24h 自助** |
| 形态 | 纸质 + 物理章 | PDF + 电子章 |
| 适用 | 严格的财务 / 老人 | 大多数业户 |
| 物业人力 | 需要 | 完全不需要 |
| 报销 | 大多数公司认可 | 取决于公司政策 |
## 相关概念
- [[概念-CollectionOrder与Receipt]] — Receipt 表
- [[场景-A流-前台购买IC卡]] — 收据生成的原始流程
- [[场景-B流-小程序下单+微信支付]] — 收据生成的另一种触发
- [[场景-收据-现场打印纸质收据]] — 纸质替代方案
- [[场景-收据-重打丢失收据]] — 业务人员协助补打
## 异常分支
- 公司要纸质 → 走 [[场景-收据-现场打印纸质收据]]
- 信息错 → [[场景-已收款作废]] + 重做
- 想要发票 → 单独申请流程(超出本系统)