docs: 完善智能瓶阀平台需求文档

This commit is contained in:
2026-07-26 17:23:07 +08:00
parent 53c3fa26af
commit e85a515183
13 changed files with 1107 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
# 项目总览与边界
## 1. 项目定位
面向可燃气体用户、可燃气体站和服务人员的一体化物联网智能瓶阀平台。平台将设备远程控制、环境安全监测、入户安检、商品交易、配送安装、售后和平台运营统一到一套可审计的闭环中。
核心价值:降低可燃气体安全事件响应时间;让设备、告警、整改责任可追溯;将智能瓶阀商品和服务履约在线化;为可燃气体站提供运营和对账能力。
## 2. 目标与非目标
| 分类 | 内容 |
| --- | --- |
| 业务目标 | 设备在线可视、异常自动处置、用户与平台双通知、安检整改闭环、商品至服务完成闭环 |
| 管理目标 | 分角色授权、订单和资金可对账、关键操作可审计、可按区域和气站运营 |
| 本期不做 | 自主制定可燃气体安全法规、替代支付/合同第三方、取代线下可燃气体业务系统 |
| 依赖外部能力 | 设备厂商 IoT 接入、地图/定位、短信或消息推送、微信/支付宝支付、电子合同、在线客服 |
## 3. 角色与权限边界
| 角色 | 主要职责 | 数据范围 |
| --- | --- | --- |
| 普通用户 | 管理智能瓶阀、接收告警、下单、预约、投诉 | 本人及授权家庭成员的设备、地址、订单 |
| 配送员 | 接收配送单、导航、配送取证、提现 | 分配给自己的订单与收益 |
| 安装维修员 | 安装、维修、环境验收、取证 | 分配给自己的工单与设备安装信息 |
| 安检员 | 上门安检、判定等级、复检 | 分配区域/工单内的用户与设备 |
| 可燃气体站管理员 | 管理本站商品、优惠券、订单核销、对账提现 | 所属可燃气体站及其服务范围 |
| 平台管理员 | 全局配置、用户/服务人员/气站、运营、资金审核 | 全平台,按后台权限进一步拆分 |
| 扩展:客服 | 工单受理、消息答复、回访 | 被分配的客户与工单,不能改资金和安全判定 |
| 扩展:财务 | 充值、退款、结算、提现复核 | 资金流水和结算数据,不可控制设备 |
| 扩展:安全主管 | 告警规则、处置升级、安检抽查 | 全局安全事件与检查数据,不可操作资金 |
| 扩展:设备运维 | 设备型号、固件、IoT 通道、故障诊断 | 设备技术数据,不可查看完整交易隐私 |
## 3.1 系统规划与主责边界
| 终端/系统 | 使用者 | 主责 | 不承担的主责 |
| --- | --- | --- | --- |
| 用户端 App | 业主、消费者 | 设备、安全记录、商城、订单、钱包、客服 | 服务人员履约、组织经营、生产追溯 |
| 服务端 App | 安装维修员、安检员、配送员 | 接单、现场作业、检查、取证、配送和个人收益 | 全局规则、跨组织调度、资金审批 |
| 平台总后台 | 平台运营、财务、安全、客服、审计 | 全局组织、规则、安全、主数据、结算、审计 | 站点/配送点/生产单位的日常重复操作 |
| 可燃气体站管理系统 | 站长、站内运营、仓管 | 站点商品、库存、订单、服务、客户和对账 | 全局安全策略、跨站结算、生产质检 |
| 配送点管理系统 | 配送点负责人、调度、仓管 | 配送人员、配送仓、调度、路由、配送质控 | 生产主档、站点价格、平台总账 |
| 生产管理系统 | 生产、质检、仓储、质量人员 | 设备生产、序列号、质检、固件、出厂与召回 | 用户绑定、订单履约、平台告警运营 |
| API 中心管理系统 | 开放平台运营、合作方管理员 | API 产品、应用接入、凭证、配额、文档和调用审计 | 订单、设备、资金等业务事实的主编辑 |
### 规划审视结论
- 单一服务人员 App 能共享登录、消息、定位、取证、钱包和离线能力,同时避免配送、安装维修、安检维护三套终端;角色切换必须保留组织、资质和数据范围隔离。
- 五个 Web 系统应共享身份、设计系统、审计和 API 网关,但各业务事实必须有唯一主责系统。例如:设备出厂身份由生产系统主责,设备绑定与安全事件由平台主责,配送仓库存由配送点主责。
- 平台总后台不能成为所有业务的“万能入口”。日常站点、配送点和生产操作应在各自系统完成,再通过事件与只读聚合同步到平台。
- API 中心只管理开放接口的生命周期与调用方,不直接绕过业务服务写入数据库;高风险设备和资金 API 默认不开放。
## 4. 核心对象与术语
| 术语 | 定义 |
| --- | --- |
| 智能瓶阀 | 支持远程开关、状态上报和安全策略的物联网瓶装可燃气体阀门设备 |
| 设备绑定 | 用户通过扫码或授权,将唯一设备绑定到家庭/地址 |
| 安全事件 | 设备遥测或人工检查触发的异常,包括压力、电池温度、离线、安装环境不合格等 |
| 安全等级 | 1/2/3 级的风险与整改时限。附件建议1 级半小时、2 级 24 小时、3 级 48 小时完成处置;最终以安全主管配置为准 |
| 整改 | 对不合格项采取维修、更换、通风、复检等措施并形成证据 |
| 服务订单 | 商品订单拆分出的配送、安装、维修、安检等履约任务 |
| 气站 | 销售、服务和结算的经营主体,可管理其商品与服务区域 |
## 5. 范围清单
### 5.1 设备与安全
- 设备扫码绑定、列表、详情、远程开/关、控制结果确认。
- 上报并展示智能瓶阀状态、电量、电池温度、环境压力和可扩展传感器指标。
- 发生达到规则阈值的安全问题时,自动关闭智能瓶阀(由设备侧/云侧双重保障),创建安全事件并通知用户和平台。
- 安检申请、平台派单、上门检查、不合格分级、整改、复检、抽查与超时升级。
### 5.2 商城与履约
- 商品分类、商品详情、购物车、收藏、优惠券、收货/安装地址、下单与订单状态。
- 微信、支付宝、余额支付;电子合同第三方签署;配送/安装预约。
- 自动或规则化派单、导航、到达/完成取证、售后、投诉建议。
### 5.3 平台运营
- 用户、服务人员、气站、商品、优惠券、内容、协议和客服配置。
- 设备分布、报警待处理数、用户增长、订单指标、地图数据分析。
- 钱包充值、余额流水、分账比例、对账、提现申请与审核。
## 6. 全局业务规则
1. 远程开关不能仅以请求成功作为结果,必须记录设备回执;超时进入“待确认”。
2. 对安全策略触发的关阀操作,普通用户不得直接绕过。恢复开阀应遵循事件等级、整改状态与人工授权规则。
3. 设备、告警、检查、整改、订单、支付、提现均须保留不可篡改的操作审计。
4. 一个订单可以包含多件商品,但配送、安装、维修可拆为多个服务任务;订单主状态由所有必需任务综合计算。
5. 服务人员只能处理被分配且处于工作时间/服务区域内的任务;异常改派须说明原因并保留记录。
6. 用户注销前应校验未完成订单、未关闭安全事件、余额和数据保留义务;满足条件后执行去标识化而非直接删除审计记录。
## 7. 待确认事项
- 自动关阀的最终触发阈值、设备侧与云侧的优先级、重新开阀审批策略。
- “安全视频”是安防视频、宣教视频还是工单取证视频,以及其存储合规要求。
- 设备归属是否支持家庭成员共享、设备转让、设备解绑冷静期。
- 商品是否仅限气管/智能瓶阀,是否支持服务型 SKU、发票、退款和部分退货。
- 各类服务订单的派单算法、服务半径、计价和分账规则。
- 合同签署时点、签署失败的订单状态、原文存证与法务责任边界。

View File

@@ -0,0 +1,81 @@
# 核心业务流程
## 1. 设备绑定与远程控制
```mermaid
sequenceDiagram
participant U as 用户 App
participant P as 平台服务
participant I as IoT 接入层
participant D as 智能瓶阀
U->>P: 扫码提交设备码与安装地址
P->>P: 校验设备存在、未占用、用户授权
P->>I: 查询设备在线和激活状态
I-->>P: 返回设备状态
P-->>U: 绑定成功/待激活/失败原因
U->>P: 发起开阀或关阀
P->>P: 鉴权、事件拦截、风控与审计
P->>I: 下发带幂等键的命令
I->>D: 设备命令
D-->>I: 执行回执与最新遥测
I-->>P: 结果上报
P-->>U: 成功、失败或待确认
```
### 状态与异常
- 命令状态:待发送、已发送、设备已确认、执行失败、超时待确认、已撤销。
- 设备离线时默认不接受“已成功”结果;若设备支持离线指令队列,必须显式提示用户。
- 用户关闭智能瓶阀可直接执行;开阀需校验是否存在未解除的高风险安全事件、安装不合格或设备故障。
- 设备二维码只能绑定一次;转移需原主人确认或平台凭据审核。
## 2. 自动告警与整改闭环
```mermaid
flowchart TD
A[遥测/人工检查异常] --> B{匹配告警规则}
B -->|不触发| C[存储遥测]
B -->|触发| D[创建安全事件]
D --> E{是否须自动关阀}
E -->|是| F[下发关阀并等待回执]
E -->|否| G[保留当前阀门状态]
F --> H[通知用户、平台和责任人]
G --> H
H --> I[分级/派发安检或维修任务]
I --> J[现场处理及上传证据]
J --> K{复核通过}
K -->|否| L[继续整改/升级]
K -->|是| M[关闭事件并记录恢复条件]
```
| 级别 | 附件建议 SLA | 默认处置 | 升级建议 |
| --- | --- | --- | --- |
| 1 级 | 半小时完成整改 | 自动关阀、立即电话/短信/推送、多渠道通知平台 | 5 分钟无人确认升级安全主管;超时升级气站负责人 |
| 2 级 | 24 小时排查整改 | 告警、优先派单;是否关阀由规则决定 | 2 小时未接单升级;到期前 2 小时催办 |
| 3 级 | 48 小时排查整改 | 创建检查/整改任务并通知用户 | 24 小时未接单升级;到期前 6 小时催办 |
SLA 从事件创建还是用户确认开始计时须由业务方确认;系统应同时记录原始时间、暂停原因和最终完成时间。
## 3. 商城下单至完成
1. 用户浏览分类和商品,加入购物车或立即购买,选择地址、优惠券、预约时段和支付方式。
2. 系统冻结库存、核算优惠和运费/服务费,创建待支付订单;支付回调成功后转为待履约。
3. 若有合同,创建第三方签署任务。需合同的商品应在签约成功后才允许派单;签约失败/超时可取消并按规则退款。
4. 按商品履约属性生成配送、安装或维修任务。系统按区域、技能、上班状态、距离、负载和分账规则分配人员;无法派单时进入人工调度队列。
5. 配送任务从接单开始记录配送轨迹:接单、出发、位置上报、到达、签收/异常等节点按时间顺序关联订单。用户查看简化进度与预计到达,运营人员查看完整轨迹和定位质量。
6. 服务人员接单、导航、到达并完成取证。安装订单还须提交环境验收。
7. 所有必需任务完成并通过必要审核,订单转“已完成”;用户可在售后期内发起售后。
## 4. 安装环境不合格
- 安装维修员按检查表填写不合格项、风险等级、图像/视频证据和处理建议。
- 系统创建或关联安全事件,禁止将设备标记为“已安装可用”;对需要关阀的场景执行安全策略。
- 用户和平台收到明确的整改项、时限和预约入口;必要时分派维修/安检复查任务。
- 复查合格后才允许激活设备、解除限制或继续订单完成流转。
## 5. 资金与提现
- 支付、充值、退款、佣金、提现均以不可变资金流水记录,余额是流水聚合结果而非唯一事实来源。
- 提现流程:服务人员/气站提交申请 -> 系统校验可提现余额、实名与风控 -> 财务审核 -> 线下打款/三方打款 -> 回填凭证和结果。
- 附件规定“审核通过,线下打款”;本期应支持审核通过、审核拒绝(必填原因)、打款中、已打款、打款失败、撤回。
- 固定时间对账应对比平台订单、支付渠道、退款和佣金流水;差异项不得自动提现。

View File

@@ -0,0 +1,92 @@
# 用户端需求(业主/消费者 App
## 1. 产品入口与导航
Flutter App 使用底部导航:智能瓶阀控制、商城、收藏、订单、我的。消息中心作为“我的记录”和通知入口提供,不单独占用底部导航。未登录用户可浏览受限内容;涉及设备、订单、钱包、押金和地址时必须完成登录。
产品设计稿的默认登录页使用“手机号 + 验证码”方式,支持记住登录状态和忘记密码入口;用户名密码登录可作为兼容能力保留。验证码登录应具备频控、图形/行为校验和设备风控;登录前必须展示用户协议和隐私政策,并记录用户同意的协议版本。
### 首次进入与安全宣导
- 首次登录或安全宣导内容更新后,展示可配置的“智能瓶阀控制功能介绍”,至少支持功能介绍、安全案例、法律法规和安全注意事项等内容分类。
- 注意事项应明确低电量、离线、泄漏报警、通风、远离火源、定期检查和自动关闭的安全提示;用户确认阅读后才进入主界面。
- 宣导内容、展示频率、是否强制阅读及版本号由平台后台配置,并记录阅读确认;紧急告警不受宣导弹窗阻塞。
## 2. 首页与设备
| 功能 | 需求 | 验收要点 |
| --- | --- | --- |
| 定位 | 获取当前位置并允许手动选择地址/气站服务区域 | 授权失败有手动入口,不以定位失败阻塞设备使用 |
| 内容 | 轮播图、公告、安全宣传、安全视频列表 | 后台上下架后按缓存策略刷新;外链有风险提示 |
| 智能瓶阀列表 | 显示名称、地址、在线状态、开关状态、最近告警、设备数量 | 可按地址/状态筛选;离线状态显著可见 |
| 扫码添加 | 扫码或输入设备码,选择安装地址和设备昵称 | 校验设备归属、激活、服务区域和重复绑定 |
| 设备接入 | 扫码添加、手动输入、蓝牙连接与设备校验 | 展示设备 ID、名称、安装位置绑定前需用户确认蓝牙权限失败有明确引导 |
| 控制 | 开/关阀、操作确认、命令状态和历史 | 高风险事件限制开阀;命令必须有最终回执或超时状态 |
| 群组控制 | 按厨房、热水器、暖气等区域/用途对多个智能瓶阀分组,支持全开、全关、编辑和删除 | 全开必须逐设备校验安全事件、在线和权限;任一设备失败需返回明细,不能将群控标记为全部成功 |
| 状态详情 | 电量、电池温度、环境压力、其他参数、趋势和更新时间 | 单位、阈值、数据延迟、传感器异常清晰展示 |
| 气瓶信息 | 气瓶规格、钢瓶号、充装日期、充装单位、充装数量、有效期和制造厂信息 | 数据来源和更新时间可追溯;过期或异常气瓶显示风险提示和处理入口 |
| 安全记录 | 显示未处理数量、等级、时间、处理进度和证据 | 可进入详情、联系平台、申请复检;不可删除系统安全记录 |
| 紧急报警 | 报警触发状态、安全提示、紧急联系人和紧急电话 | 显示火警、报警、急救和可燃气体服务热线;号码由平台/区域配置,允许一键拨打 |
| 一键报修 | 泄漏、阀门故障、报警器故障、其他问题;故障描述、语音输入、联系人、地址、现场照片 | 当前定位和照片采集时间自动写入报修单;默认最多上传 3 张现场照片,具体上限后台可配置 |
### 设备页面的关键交互
- 关阀操作展示影响提示;开阀操作展示当前安全检查和限制状态。
- 设备离线、低电量、传感器故障、未激活分别显示不同文案和解决建议。
- 支持家庭共享作为扩展:设备所有者可授权成员查看或控制;控制权限应单独授予并可随时撤销。
- 设备状态卡片应展示在线状态、电池电量、环境压力、温度、自动关闭时间、气瓶余量/规格及最后更新时间;无数据须显示“暂未上报”而非使用历史数据冒充实时状态。
- 设备告警触发时,优先展示关阀执行结果、风险说明、紧急电话、通风/撤离指引和报修入口;用户不能通过群控或单设备开阀绕过高风险限制。
## 3. 商城、订单与售后
- 商品分类由后台一级分类驱动;商品列表展示图、名称、售价、划线价、已售数量与库存状态。
- 设计稿中的商城支持全部、可燃气体灶具、热水器、软管等分类、关键词搜索、收藏和商品卡片内数量加减;库存不足或超出限购时禁用继续加购并说明原因。
- 商品详情包括轮播图、图文详情、规格、服务说明、适用条件、售后政策、客服、收藏、加入购物车、立即购买。
- 购物车支持单选、全选、数量调整、删除、优惠估算和失效商品提示。
- 气瓶订单须选择配送公司、气瓶规格与数量、预约配送时段或自定义日期;实时展示各规格库存、配送费、订单总数、商品总额和应付合计。库存不足时不得提交订单。
- 提交订单须选择收货/安装地址、优惠券、预约配送/安装时间、支付方式;支付方式支持微信、支付宝、余额,具体以渠道开通为准。余额支付必须校验支付密码、可用余额、幂等支付单和风控状态。
- 订单详情展示订单号、商品、总金额、优惠、支付方式、合同、履约时间、服务人员联系脱敏信息、进度、配送轨迹和售后入口。
- 订单分为全部、待支付、已支付/待履约、已完成、已取消;实际页面应兼容订单内多个服务任务的细分状态。已支付订单可按规则申请退单、评价订单、查看配送详情和查看电子发票。
- 用户可发起售后,选择类型、原因、图片/视频、期望方案;平台须在后台处理并向用户推送进度。
### 配送轨迹展示
- 配送订单在配送员接单后展示状态时间线:待配送、已接单、已出发、配送中、即将到达、已送达/签收或配送异常。
- 配送中可展示最近位置、路线进度和预计送达时间;位置刷新频率、定位精度和最后更新时间必须明确展示。无有效位置时显示“暂未获取位置”,不伪造实时轨迹。
- 用户仅可查看与本人订单关联的配送轨迹,并在订单完成后按平台的数据留存策略展示历史。为保护配送员隐私,默认展示配送服务位置与路线进度,不展示配送员个人活动轨迹。
- 订单改派、地址变更、异常退回或取消时,保留历史节点并展示原因;新配送任务从新的接单节点继续记录。
- 配送详情除轨迹外,应展示配送员姓名、脱敏电话/受控呼叫入口、配送公司、配送点/服务电话、预约时段、预计送达时间和交接状态。
### 电子发票
- 用户可按单次订单、月度或年度筛选可开票订单,查看可开票金额、发票数量、购买方抬头、税号、地址和联系电话。
- 发票申请、开具、作废、红冲等状态以开票服务回执为准;电子发票支持预览和保存至相册/下载,访问链接需短期授权。
## 4. 钱包、消息与个人中心
| 模块 | 必要功能 | 规则 |
| --- | --- | --- |
| 钱包 | 充值套餐、自定义充值、余额、余额明细、提现申请与支付密码 | 充值结果以渠道回调为准;自定义金额有上下限和风控;提现范围与审核规则由平台配置 |
| 押金管理 | 气瓶押金、报警器押金、押金汇总、明细、退瓶退押金 | 按设备/气瓶规格、数量、单价、使用状态和开始时间核算;退押金结果以现场验收和平台审核为准 |
| 用气统计 | 月度/年度用气量、平均用气量、图表、明细和报表导出 | 数据来源、统计周期、单位和最后更新时间须明确;无数据展示空状态 |
| 消息 | 系统通知、订单通知、安全通知、消息中心 | 安全通知不可关闭;支持已读、跳转对象和通知偏好 |
| 地址 | 列表、新增、编辑、默认地址 | 地址包含联系人、电话、详细地址、地理坐标与服务范围校验 |
| 收藏 | 收藏商品、取消收藏、收藏列表 | 下架商品保留历史但不可购买 |
| 客服 | 电话客服、在线客服 | 电话号码/服务时段由后台配置;紧急安全问题优先展示紧急联系人 |
| 邀请注册 | 扫描气站或配送点邀请二维码,完成注册/登录、服务地址确认及服务关系建立 | 二维码过期、已停用、次数耗尽或地址超出服务范围时展示明确提示;不重复创建账号 |
| 我的记录 | 消息中心、订单、押金、退款、报修、报警、用气统计、收藏 | 记录按对象和状态筛选;历史安全、资金和订单记录遵循留存策略,不允许用户篡改 |
| 紧急联系人 | 新增、编辑、删除紧急联系人;授权其查看或控制指定设备 | 漏气报警自动关阀后通知紧急联系人;控制授权单独确认、可撤销并保留审计 |
| 设置 | 昵称、头像、支付密码、设备管理、紧急联系人、自动关闭时间、通知、免打扰、发票信息、主题、通用设置、协议、关于、退出、注销 | 定时关闭设置不得绕过告警关阀规则;注销严格遵循全局规则,协议需有版本与同意记录 |
### 押金退还
- 用户从押金管理进入“退瓶退押金”,选择气瓶/设备、规格、数量及完好或损坏状态,系统实时展示预计退还押金。
- 退款申请生成后进入待验收/待审核;设备序列号、使用时长、原始押金、扣减原因、实际退款和退款去向必须可追溯。
- 用户确认退瓶后,押金退回账户余额或原支付路径的规则由平台配置;存在未完成订单、安全事件或争议时应拦截或转人工处理。
## 5. 产品设计对齐与扩展需求
- 设备共享与家庭成员管理、电子保修卡、用气/设备健康月报。
- 一键紧急关阀、告警静默时段(不影响高风险告警)、语音/无障碍辅助。
- 安全知识考试、服务评价、发票申请、预约改期、订阅式巡检服务。
- 后续可扩展设备蓝牙离线诊断、气瓶换新提醒、余量预测、异常用气提醒、电子保修卡和家庭成员用气对比。

View File

@@ -0,0 +1,116 @@
# 服务端 App 需求
## 1. 定位与角色模型
服务端 App 是安装维修员、安检员和配送员共用的 Flutter 移动应用。“服务端”在本文指服务人员端,并非后端服务。用户登录后由平台分配角色、资质、所属可燃气体站/配送点和服务区域;具有多个角色时可切换工作台,但每次操作都带角色和组织上下文。
设计稿要求不同角色使用同一登录与账户体系,但加载不同的底部导航和工作台:配送员使用“订单、任务、用户、我的”,安装维修员使用“工单、巡检、记录、我的”,安检员使用“任务、记录、隐患、我的”。导航、数据和接口均按当前角色、组织、服务区域与资质过滤。
| 共同能力 | 说明 |
| --- | --- |
| 认证与上下班 | 验证码/密码登录、设备风控、角色切换、上班状态、服务区域、消息 |
| 待办中心 | 按风险、预约时间、SLA、距离展示待办支持接单、拒绝、改派和异常上报 |
| 任务详情 | 订单/工单信息、用户地址、商品/设备摘要、预约、风险提示、导航、受控联系 |
| 现场取证 | 相机、相册、定位、签名、签收码、检查表、离线草稿;上传需记录采集时间与任务 ID |
| 收益与账户 | 当前余额、待结算、钱包流水、提现申请、审核结果、协议、个人资料与投诉建议 |
### 账户、资质、上班与培训
- 登录支持用户名密码、记住登录状态、忘记密码、用户协议和隐私政策确认。注册页可申请配送员、安装维修员或安检员角色,但注册成功仅创建待审核账号;平台审核通过并校验资质后才可接单。
- 服务人员资料包括姓名、手机号、工号、工作单位、身份证明、角色对应从业证号、证书到期日和证件照片。配送员额外维护配送车辆车牌、颜色、车型及车辆照片;安装维修/安检人员维护专业资质、培训和工具能力。证件图片默认最多 6 张,数量和类型可配置。
- 上班/下班记录当前时间、状态、角色、地点和设备信息。未上班、超出服务区、资质失效或未完成每日培训时不得接新单;已接任务须完成、改派或按规则申请下班。
- 每日安全知识培训在首次进入工作台时弹出,按角色题库下发单选/多选题,记录题目版本、答案、结果、完成时间和次数。未完成培训时可浏览任务但默认不能开始执行;是否允许补训由平台配置。
## 2. 配送工作台
- 展示待配送、配送中、已送达、异常订单及预计收入;仅接收所属配送点和服务区域内的任务。
- 接单后可导航、报到、联系用户、提交签收码/签名/照片等交接证明;重复提交必须幂等。
- 配送中按任务状态和平台策略上报配送轨迹:至少记录接单、出发、到达配送区域、到达地址、签收/失败等事件;运行中位置上报包含定位时间、经纬度、精度、速度/方向(如可用)和来源。
- App 在后台运行、弱网或定位权限变化时应明确提示。弱网时本地加密缓存轨迹点并按时间顺序补传;禁止篡改采集时间。用户或运营端看到的“实时位置”必须标注最后更新时间。
- 地址无法到达、用户不在、货损、超服务区进入异常工单,不得直接标记配送完成。
- 配送完成后把交接信息回传订单系统;如订单还需安装,只将配送任务置完成,不提前完成主订单。
### 2.1 配送任务页面与排序
- 订单页显示待配送新订单与待回收空瓶任务,包含订单/任务号、用户姓名与脱敏联系电话、地址/地图入口、气瓶规格与数量、气瓶押金、订单金额、预约时间、超时/紧急标识和接单按钮。
- 任务页支持“按时间排单”和“按路线排单”。路线排序使用配送员当前位置、服务区域、预约窗口与路线规划结果;平台人工调度优先级高于 App 本地排序。
- 用户页允许配送员在本点授权范围内按姓名、电话或地址检索服务用户,查看月度/年度用瓶数量与金额、气瓶/押金摘要、配送历史、随瓶安检结果、用户评价和报表导出入口;无关用户信息不得查询或导出。
### 2.2 配送与空瓶回收闭环
```text
查看订单 -> 开始配送 -> 导航并确认到达 -> 扫描/录入气瓶 -> 随瓶安检取证 -> 确认收款 -> 完成配送
空瓶回收:查看回收任务 -> 蓝牙连接(如需) -> 扫描/录入空瓶 -> 确认回收 -> 更新押金和库存状态
```
- 到达环节展示地图导航和“确认送达”;服务端校验地理围栏、时间窗口与任务状态。围栏异常可提交原因和证据,不能直接跳过。
- 气瓶扫描支持蓝牙连接智能瓶阀设备、扫码和手动录入。每个气瓶记录设备/钢瓶编码、规格、扫描时间、操作人和任务;重复扫描、规格不符、已在其他任务中或状态异常时必须拦截。
- 随瓶安检必须采集 1-6 张照片(默认要求 6 张,后台可配置)并自动写入定位与时间水印;照片类型包括配送前、配送中、配送后、气瓶特写、安装现场、安检现场和其他。视频支持 0-3 段可选采集,同样写入定位与时间水印。
- 随瓶安检记录气瓶、管道、阀门和使用环境结论,均为必填合格/不合格项;不合格时必须创建关联安全事件/整改任务,禁止直接完成配送。
- 收款确认展示订单原始金额、气瓶押金、应收合计、用户已支付金额和本次确认金额。配送员只能确认已核验的支付结果或平台授权的线下收款,不能修改订单金额;所有差异进入异常对账。
- 空瓶回收完成后更新气瓶状态、押金状态、回收时间和库存去向。逾期回收、瓶码不符、损坏或未归还须记录异常原因并转平台/气站处理。
## 3. 安装维修工作台
- 处理安装、维修、复检任务,展示设备编码、商品/部件、预约、安装价格、历史安全事件和必备工具提示。
- 现场按后台下发的版本化检查表记录安装位置、可燃气体管道连接、密封、泄漏/压力、通信、电池、固定、防护及用户告知。
- 合格时记录设备激活/回执、耗材、工时、用户确认;不合格时必须填写等级、问题、整改建议和证据,创建或关联安全事件。
- 高风险不合格时突出显示停止作业、关阀和紧急联系指引;服务人员无权绕过关阀限制或伪造完成。
### 3.1 维修工单闭环
- 维修任务流程为“详情 -> 执行 -> 安检 -> 完成 -> 收款”。任务详情显示工单号、类型(如阀门维修、管道维修)、地址、维修等级、时限、剩余时间、优先级和状态;紧急工单突出显示并参与超时升级。
- 执行维修时必须选择照片类型并上传维修前/维修中/维修后证据;安全检查至少覆盖设备运行、安全功能、管道密封、压力表/压力、泄漏和报警器。检查表由后台按设备型号和任务类型版本化下发。
- 维修完成后要求用户电子签字确认。涉及收费的维修单应展示材料、数量、单价、服务费、押金、应收和实收;收款确认后才可进入完成状态,支付差异转异常处理。
### 3.2 新装智能瓶阀/设备闭环
```text
详情 -> 确认使用条件 -> 准备材料 -> 执行安装 -> 测试安装 -> 前期安检 -> 完成 -> 收款
```
- 使用条件确认至少包括通风良好、远离火源和热源、安装位置便于操作维护、用户已了解安全知识、用户同意遵守使用规定。任一不符合时不能进入安装,必须记录不符合项、照片证据、整改期限和用户签字。
- 备料页选择报警器、可燃气体管道、阀门、密封垫圈、连接接头等材料及数量,实时计算材料费、押金和合计。材料主数据、价格和可选范围由平台/气站下发,服务人员不能手改单价。
- 安装步骤至少包括关闭原阀、拆除旧设备(如有)、安装新设备/报警器、连接管道、安装阀门和接头、检查所有连接点;每个任务可按设备型号配置强制步骤和取证要求。
- 测试安装至少包括开启阀门、检查报警器运行、使用测漏液检查连接点、检查阀门开关灵活性、测试气流量/通信回执、确认无泄漏。任一不通过不得激活设备或完成安装。
- 前期安检结论为合规或不合规,并要求用户签字;完成后创建材料消耗、安装记录、设备激活结果和收入待结算记录。
## 4. 安检工作台
- 接收平台或可燃气体站分配的安检申请、复检和区域抽查,按待检查、待整改、已整改、超时筛选。
- 在现场填写检查项、合格/不合格结论、1/2/3 级建议、描述、照片/视频、用户签收和定位。
- 检查不合格后通知用户和平台,生成整改时限与复检任务;用户拒检需记录原因和证据,不得伪造检查结果。
- 地图仅展示完成任务所需的模糊点位和区域,禁止导出无关用户位置。
### 4.1 安检任务与隐患整改
- 安检任务按距离/计划时间排序,展示常规安检、专项安检、地址、最近安检时间、计划时间、状态和开始检查入口;开始前校验安检区域地理围栏。
- 工单流程为“详情 -> 执行 -> 安检 -> 完成”。检查表分为用气设备清单(如计量、报警、智能瓶阀、管道、工具、热水器)和用气环境清单(如通风、易燃物、安装规范、管道腐蚀、泄漏、报警器状态),项目由后台配置。
- 安检照片默认最多/目标 6 张,必须选择照片类型(安检前、安检中、安检后、设备、环境、管道、阀门、其他),自动添加地址和时间水印。用户电子签字可保存、清除和重新签署,签名与检查结论绑定。
- 结果为不合规时必须选择风险等级:一级高风险立即整改、二级中风险限期整改、三级低风险建议整改。界面可允许问题描述选填,但一级、二级事件的后台规则应要求补充不合格项或整改说明。
- 完成检查后生成隐患条目,状态至少含待处理、处理中、已整改、已关闭/已超时;整改完成可由安检员或授权复核人标记,须保留整改照片、用户签字和时间。
## 5. 统一状态与权限
```text
待分配 -> 待接单 -> 已接单 -> 已到达 -> 处理中 -> 待审核/待确认 -> 已完成
└-> 异常处理/待整改 -> 复检 -> 已完成
任意非终态 -> 已取消(记录取消方、原因、责任归属)
```
- 任务状态迁移由服务端校验角色、资质、组织、时段、区域及前置条件。
- 弱网可查看已分配任务和暂存现场材料;关阀、设备激活、任务完结、资金动作必须以服务端确认结果为准。
- App 不展示其他组织的订单、完整支付流水或超出任务必要范围的个人信息。
## 6. 记录、收入、个人中心与帮助
- 记录页按角色展示安检历史/隐患、设备安装记录、维修记录、配送记录和空瓶回收记录。每条记录可进入详情查看任务状态、照片/视频、签名、材料、安检结果、收费、用户评价与整改状态。
- 账户管理展示总收入、本月收入、本年收入、服务/安装/配送工单收入、待结算和可提现余额;支持提现申请、提现历史、添加/管理银行卡。提现按平台审核与线下/三方打款规则执行。
- 统计页展示角色相关的任务数、完成率、及时率、收入、押金代收/退还、评价和异常率;口径、时间范围和数据更新时间必须明确。
- 个人设置支持消息通知、声音提示、震动反馈、头像、资料、帮助和退出登录。帮助中心包含角色对应的常见问题和视频教程,例如开始处理工单、阀门/管道维修、新装设备、随瓶安检、拍照取证、用户签字和提现。
- 每位服务人员可生成推荐二维码,用于经平台批准的服务人员招募或推广。二维码内容可编辑、分享和停用,但不得包含个人证件、银行卡、长期登录凭证或可越权的角色授权信息。
## 7. 服务质量扩展
- 资质到期、培训考试、工具/车辆检查、评分、服务超时和异常率看板。
- 维修知识库、远程专家会诊、备件领用、语音转写、电子保修卡和用户回访。

View File

@@ -0,0 +1,127 @@
# 平台总后台需求
## 1. 系统定位
平台总后台是全平台唯一的治理与跨组织运营中心,负责组织/权限、全局安全、设备全生命周期、交易资金、内容与规则、跨系统数据分析和审计。它不是各业务系统日常重复操作的入口:可燃气体站、配送点和生产单位在各自系统中处理本组织日常业务。
## 2. 主要功能域
| 功能域 | 核心功能 | 数据边界 |
| --- | --- | --- |
| 组织权限 | 管理员、角色、权限、可燃气体站、配送点、生产单位、服务区域、数据范围 | 全局;支持按组织、区域、对象归属授权 |
| 用户与服务人员 | 用户 360、服务人员资质、角色、冻结、分账、跨组织调配 | 查看敏感数据受字段权限和审计控制 |
| 设备与安全 | 设备模型、绑定、遥测、命令、规则、事件、SLA、安检/整改、强制升级 | 全局安全规则和高风险动作仅授权角色可操作 |
| 商品交易 | 全局商品主数据、价格策略、订单、售后、支付、合同、优惠规则 | 站点商品与库存由站点系统主责,平台可治理与审计 |
| 资金结算 | 充值、支付、退款、分账、结算、提现、对账、打款凭证 | 财务角色分离,关键审批支持双人复核 |
| 内容与客服 | 轮播、公告、协议、宣教内容、消息模板、客服配置、投诉工单 | 发布有审核、版本和撤回能力 |
| 全局运营 | 用户/订单/设备/事件/履约指标,地图和异常看板 | 支持跨组织下钻但遵循权限和脱敏 |
| 审计合规 | 操作审计、导出审计、敏感访问、数据留存、注销与合规工单 | 不可由普通管理员删除或篡改 |
## 3. 全局组织与主体管理
平台总后台维护所有经营主体的唯一主档,并将组织、区域、人员、库存、设备、订单、资金和服务能力关联起来。任何业务系统都只能编辑其被授权字段;组织准入、冻结、跨组织变更、结算主体与高风险资质由平台审批。
### 3.1 可燃气体站管理
可燃气体站是销售、安装维修、安检协同和结算的经营主体。后台应支持创建、导入、审核、启停、合并/迁移及归档,且所有历史订单、资金和安全事件必须保留原站点归属。
| 管理项 | 必填/展示信息 | 平台操作与规则 |
| --- | --- | --- |
| 基本档案 | 站点编码、名称、统一社会信用代码、法人/负责人、联系人、地址、经纬度、营业时间、状态 | 站点编码全局唯一;证照、负责人、结算主体变更进入审核流 |
| 经营与服务 | 覆盖区域、可售商品、库存仓、服务类型、预约时段、客服信息、配送协作方式 | 覆盖区域不得无审批重叠;服务类型决定可创建的订单和任务 |
| 人员与权限 | 站长、运营、仓管、客服、财务等站内账号及其数据范围 | 平台可授权、冻结、重置和回收;在平台授权的角色和数据范围内,站点管理员可管理本站账号、配送点、服务人员与用户服务关系,但不能自行提升权限 |
| 业务与质量 | 用户数、设备数、订单、履约时效、售后、投诉、安检整改、告警响应 | 支持按区域/时间下钻;超时、投诉率、整改率触发经营风险预警 |
| 资金与结算 | 支付、退款、佣金、分账比例、待结算、提现、对账差异和打款凭证 | 分账规则按版本和生效时间保存;冻结站点时停止新结算和新订单,存量订单按预案处理 |
| 资质与风险 | 营业证照、服务资质、保险、到期日、风险等级、冻结/解冻原因 | 临期提醒;资质失效自动限制受影响业务,并通知站点和平台责任人 |
### 3.2 配送点管理
配送点是末端配送资源和配送库存的组织单元,可独立归属平台或某个可燃气体站。平台负责配送点准入、服务范围、资源能力、库存关系、负责人和异常监管;气站可在授权范围内创建和维护归属本站的配送点,平台负责审核及跨组织变更。
| 管理项 | 必填/展示信息 | 平台操作与规则 |
| --- | --- | --- |
| 基本档案 | 配送点编码、名称、归属组织、负责人、地址、经纬度、营业时段、状态 | 一个配送点只能有一个当前归属;变更归属须盘点库存、结清在途任务后审批 |
| 服务能力 | 覆盖区域、日配送上限、车辆/工具、服务时段、可配送商品、预约规则 | 超出能力或服务区时禁止自动分单,进入人工调度队列 |
| 服务人员与用户 | 服务人员角色、班次、在岗状态、资质、负载、评分、违规/异常记录,以及配送服务用户关系 | 配送点可在授权范围内管理本点服务人员和用户服务关系;人员可归属一个主配送点,跨点支援需要授权和有效期 |
| 配送库存 | 仓位、可用/锁定/在途/损耗库存、调拨、盘点、批次 | 站点转入、配送领用、签收/退回均生成库存流水;盘亏、报损需审批 |
| 运营质量 | 接单率、准时率、签收率、异常率、投诉率、配送成本 | 阈值预警、整改任务和配送点/负责人考核可配置 |
### 3.3 服务人员统一管理
服务人员是安装维修员、安检员和配送员的统一人员主档。一个人员可配置多个角色,但角色资格、服务区域、组织归属和可执行任务必须分别生效,避免以“有账号”替代“有作业资格”。
| 管理项 | 要求 |
| --- | --- |
| 人员档案 | 姓名、手机号、证件/实名核验、紧急联系人、头像、所属组织、主归属、可服务区域、入离职状态;敏感字段脱敏并限制导出 |
| 角色与资质 | 配送、安装维修、安检角色;对应证书、培训、技能等级、有效期、保险、设备/车辆能力和附件。到期前提醒,到期后自动停用对应角色能力 |
| 账号与设备 | 登录账号、角色、服务端 App 授权设备、登录历史、异常登录、密码重置、MFA可配置和会话强制失效 |
| 服务能力 | 工作时间、接单状态、最大负载、预约可用时段、服务区域、可处理商品/设备型号、语言或无障碍能力(可选) |
| 任务与绩效 | 当前/历史任务、接单率、准时率、完成率、复检通过率、投诉、违规、用户评分、收益和分账明细;指标须说明计算口径 |
| 生命周期 | 草稿 -> 待审核 -> 在职/可接单 -> 暂停接单/冻结 -> 离职/归档。冻结不删除历史任务和资金流水;恢复须记录审批人和原因 |
#### 服务人员关键操作
- 平台可批量导入、审核、分配组织/区域、授予角色、设置分账比例、调整可接单状态和发起跨组织调配;气站可在本站授权范围内创建、维护和提交服务人员审核。
- 平台不得直接替服务人员完成工单;改派、取消、强制下线和资质豁免必须记录原因、审批依据和受影响任务。
- 安装维修与安检等安全相关角色的资质、培训和违规记录应成为派单前置校验;配送任务还应校验配送点、班次、车辆/库存能力。
### 3.4 用户统一管理
后台提供用户 360 视图,服务于客服、安全处置、订单履约、投诉和合规响应。气站可管理本站服务范围内的用户服务关系、线下建档和服务协同;用户本人及其家庭/设备授权关系是数据访问的基础,工作人员仅能在任务或职责范围内访问必要信息。
| 管理项 | 要求 |
| --- | --- |
| 账户与身份 | 用户编号、手机号、注册来源、实名状态、登录状态、账号状态、协议同意版本、注销状态;手机和证件类信息默认脱敏 |
| 家庭与地址 | 默认地址、服务区域、地址历史、家庭成员/设备授权关系、定位授权状态;地址变更保留历史订单的快照 |
| 设备与安全 | 已绑定设备、在线状态、遥测摘要、控制历史、安全事件、安检/整改、安装维修记录和视频/图片证据访问权限 |
| 交易与服务 | 购物车、订单、支付/退款、合同、优惠券、预约、配送/安装记录、售后、投诉、客服会话和服务评价 |
| 钱包与风控 | 余额、充值、消费、退款、异常支付、限制原因;财务明细按财务权限查看,客服只看处理所需状态 |
| 账户处置 | 冻结登录、限制下单、限制设备控制、重置安全凭证、合并重复账户、注销申请处理;各动作必须区分原因、时效、影响范围和申诉入口 |
### 3.5 主体关系与跨组织协同
```mermaid
flowchart TB
P[平台总后台] --> GS[可燃气体站]
P --> DP[配送点]
P --> SP[服务人员]
P --> U[用户]
GS --> O[商品、服务订单、站点库存]
DP --> D[配送任务、配送库存、配送员]
SP --> T[安装维修、安检、配送任务]
U --> E[设备、地址、订单、安全事件]
O --> T
D --> T
T --> E
```
- 站点、配送点、服务人员和用户都使用平台分配的全局唯一编号;历史数据保存业务发生时的组织和地址快照。
- 跨组织协作通过任务、调拨、结算和事件记录实现,不允许任一系统直接修改另一主体的核心主档或资金流水。
- 组织合并、区域调整、服务人员调动、用户设备转移均需要影响评估,至少校验未完成任务、在途库存、安全事件、余额和结算状态。
## 4. 安全运营中心
- 实时显示设备离线、低电量、压力/温度异常、人工检查不合格等事件,按等级、超时、是否已关阀和责任方排序。
- 管理告警规则版本、阈值、持续时间、适用设备型号、自动关阀、消息模板、静默期和灰度范围。
- 触发后生成事件、通知、责任任务和升级链路。对强制开阀、降级、关闭高风险事件要求二次确认和完整审计。
## 5. 平台与其他 Web 系统的权责
- 平台总后台主责全局规则、跨组织协调、财务结算、全局设备与安全、主数据、审计。
- 可燃气体站管理系统主责站点经营、服务订单和站内库存。
- 配送点管理系统主责末端配送资源、调度和配送库存。
- 生产管理系统主责设备生产、质检、追溯和出厂入网。
- API 中心管理系统主责开放 API 产品与调用方治理;不拥有业务数据的主编辑权。
## 6. 权限、审核与审计要求
| 场景 | 权限与审核要求 |
| --- | --- |
| 新增/变更可燃气体站、配送点 | 运营初审 + 平台管理员/合规复审;结算主体、服务区域、证照变更必须留存附件和生效时间 |
| 服务人员准入、角色授予、资质豁免 | 人员运营审核;安全相关角色由安全主管复核;资质豁免必须有到期时间 |
| 用户冻结、限制设备控制、账户合并/注销 | 客服或风控发起,按风险级别审批;不得影响紧急安全通知和法定留存数据 |
| 分账比例、结算、提现、退款 | 财务角色隔离;高金额或异常操作双人复核;审核人与申请人不得为同一人 |
| 组织/人员/用户数据导出 | 按数据范围、字段级脱敏和审批策略控制;记录导出人、用途、数据量、时间和文件去向 |
| 高风险安全操作 | 自动关阀规则、强制开阀、风险降级、关闭高风险事件均需二次确认、操作理由和不可篡改审计 |
所有新增、编辑、审批、冻结、解冻、归档、导入、导出和跨组织调配均须记录操作者、角色、组织上下文、请求时间、IP/设备、前后值、原因、审批流和关联业务对象。审计日志与业务数据分离存储,普通运营账号无删除权限。

View File

@@ -0,0 +1,87 @@
# 气站管理系统需求
## 1. 定位与使用者
供气站站长、站内运营、仓管、客服和站点调度人员使用的 Web 管理系统。系统在平台配置的组织、区域、商品和结算政策范围内运行,管理本站日常经营,并可创建和管理归属本站的配送点、服务人员和用户;不能修改全局安全阈值、跨站资金或其他站点数据。
## 2. 功能范围
| 模块 | 功能 | 关键规则 |
| --- | --- | --- |
| 站点与人员 | 站点资料、营业时间、服务区、站内账号、服务人员归属与排班 | 账号与数据仅限本组织;跨站调配需平台审批 |
| 配送点管理 | 创建、编辑、启停本站配送点;负责人、覆盖区域、服务能力、配送仓和配送人员 | 配送点自动归属本站;编码全局唯一;跨站迁移、删除和超范围区域须平台审批 |
| 服务人员管理 | 创建和管理配送员、安装维修员、安检员;角色、资质、排班、服务范围、接单状态与绩效 | 仅限本站人员;安全相关角色须平台/安全主管审核后可接单;不能授予超出站点授权的角色 |
| 商品与库存 | 本站可售商品/SKU、价格、库存、批次、上下架、库存预警、盘点 | 全局商品主数据由平台治理;已履约商品不可物理删除 |
| 营销 | 满减券、折扣券、发放、核销、适用范围与统计 | 受平台营销政策和预算控制,券核销可追溯 |
| 订单与服务 | 订单、安装/维修/安检任务、预约、异常、售后、核销 | 只处理本站订单;高风险安全事件自动同步平台总后台 |
| 配送轨迹 | 查看本站配送订单的状态时间线、配送轨迹、预计送达、异常与签收证据 | 仅查看本站关联任务;精确位置、回放和导出遵循权限与审计规则 |
| 用户管理 | 创建/导入线下用户、查看本站用户、地址、设备摘要、服务记录、回访、投诉协同 | 仅限本站服务区及关联订单/设备用户;敏感信息脱敏展示,访问行为审计 |
| 邀请注册二维码 | 创建、下载、预览、分享、停用和统计气站邀请二维码 | 二维码仅表达受签名的邀请码/链接,不包含手机号、地址等个人信息;扫码成功自动建立本站服务关系 |
| 对账结算 | 订单、支付、退款、佣金、库存、服务费对账;提现申请 | 差异项不可结算;实际打款由平台财务确认 |
## 3. 配送点管理
气站可在授权的服务区域和配送点数量上限内创建配送点,并负责本站配送点的日常资料和资源维护。创建后,配送点同时出现在配送点管理系统中,但只有本站及平台授权人员可查看和编辑。
| 功能 | 需求与规则 |
| --- | --- |
| 创建配送点 | 填写配送点名称、负责人、地址/坐标、营业时间、覆盖区域、配送能力、配送仓和联系方式;平台生成全局唯一配送点编号 |
| 审核与启用 | 首个配送点、扩大服务区域、增加高风险商品配送能力等场景进入平台审核;审核通过后才可参与自动派单 |
| 配送资源 | 配置车辆/工具、日配送上限、预约窗口、可配送商品、配送人员和库存仓;配置变更保留生效时间和历史版本 |
| 运营管理 | 查看待配送、配送中、签收、异常、超时、配送员负载、库存和成本;可发起改派、暂停接单和恢复接单 |
| 生命周期 | 草稿 -> 待审核 -> 启用 -> 暂停接单/冻结 -> 归档;存在在途订单、库存或未结算款项时不得归档 |
## 4. 服务人员管理
气站可为本站创建和维护服务人员,统一管理配送、安装维修和安检三类角色。人员登录服务端 App 后只看到本角色、本站和本人服务区域内的任务。
| 功能 | 需求与规则 |
| --- | --- |
| 创建与导入 | 录入实名资料、联系方式、紧急联系人、所属配送点/站点、服务区域和入职信息;手机号重复时提示关联现有人员或提交平台合并申请 |
| 角色配置 | 可授予配送员、安装维修员、安检员角色;分别维护证书、培训、技能、保险、设备/车辆能力和到期时间 |
| 审核与生效 | 配送角色可按平台规则自动/人工审核;安装维修、安检等安全相关角色须平台或安全主管审核通过后才能接收任务 |
| 排班与调度 | 设置上班状态、班次、最大负载、预约时段和服务区域;可对本站任务派单、改派和暂停接单,不可跨站直接派单 |
| 绩效与处置 | 查看任务、时效、评分、投诉、违规、收益和分账;可发起冻结、离职、调动申请,最终生效遵循平台审批规则 |
## 5. 用户管理
气站管理与本站服务相关的用户,不取代用户自主注册和平台全局账户管理。气站可为线下客户建档/邀请注册,并维护服务关系、地址、设备和订单协同信息。
| 功能 | 需求与规则 |
| --- | --- |
| 创建与关联 | 为线下客户创建待激活档案或发送注册邀请;填写姓名、手机号、服务地址和来源。已存在的平台用户只允许关联本站服务关系,不得重复建账号 |
| 用户列表 | 按服务区、设备状态、订单、安检状态、投诉、活跃度和注册来源筛选本站用户;用户编号为平台全局唯一编号 |
| 用户 360 | 查看经授权的地址、设备摘要、安全事件、安检整改、订单、预约、售后和客服记录;支付完整流水、其他站点服务数据按权限隐藏 |
| 服务运营 | 创建预约、发起安检/维修/配送需求、回访、处理投诉、发送站点公告或营销触达;营销须遵守用户授权与平台频控策略 |
| 账户处置 | 可发起资料纠错、重复用户合并、服务关系解除、风险标记和注销协办;冻结登录、限制设备控制、正式注销由平台按权限审批 |
### 5.1 气站邀请注册二维码
气站可为线下推广、门店展示、业务员推广或特定服务区域创建邀请注册二维码。用户使用用户端 App 或手机浏览器扫码后,进入注册/登录和服务地址确认流程;完成后自动建立用户与该气站的服务关系。
| 配置项 | 说明 |
| --- | --- |
| 邀请类型 | 通用站点码、活动码、业务员专属码、服务区域码;专属码可用于归因和绩效统计 |
| 有效范围 | 关联气站、可选服务区域、可选商品/活动、最大使用次数、有效期和适用注册来源 |
| 二维码操作 | 生成、预览、下载 PNG/SVG、复制注册链接、停用、重新生成和查看扫码/注册/转化统计 |
| 扫码结果 | 新用户注册后建档;已有平台用户登录确认后建立服务关系;服务地址不在范围内时提示并不得错误归属 |
| 使用状态 | 草稿 -> 启用 -> 已过期/已用尽/已停用;已停用二维码不可注册,历史归因数据保留 |
二维码由平台生成带签名的短期或可撤销邀请令牌,不能把气站管理员账号、用户资料或可直接调用接口的固定密钥编码到二维码中。用户注册、服务关系建立和归因均需记录二维码 ID、来源、时间和结果。
## 6. 站点与配送点协作
- 站点创建或确认需配送的任务,向配送点发布履约需求;配送点确认人员和配送计划后回传状态。
- 商品从站点仓转至配送点仓时,创建调拨单、出入库和签收记录;在途库存独立核算。
- 配送异常、货损、拒收、退货回流均必须同步订单、库存和资金待处理状态。
## 7. 数据边界、审核与审计
- 气站只能创建和管理归属本站、处于本站服务区内的配送点、服务人员和用户服务关系;平台总后台保留全局查看、审核、冻结、跨组织调配和主数据纠错权。
- 配送点、人员、用户均使用平台全局唯一编号。气站删除操作采用归档/停用,不得物理删除历史订单、设备、安全事件、库存或资金记录。
- 新建主体、资料修改、角色授予、用户关联、派单、改派、冻结/解冻、导入/导出均记录操作人、站点、前后值、原因、时间和关联对象;敏感字段显示和导出受权限控制。
- 跨站点调拨库存、转移配送点、调动服务人员、迁移用户服务关系,须由源站、目标站和平台按流程确认,并校验未完成任务、在途库存、安全事件与结算状态。
## 8. 扩展能力
- 客户分群、区域促销、订阅式巡检、门店自提、站点经营报表、库存采购与供应商协同。

View File

@@ -0,0 +1,81 @@
# 配送点管理系统需求
## 1. 定位与使用者
配送点管理系统服务配送点负责人、调度员、仓管和配送质控人员,负责最后一公里配送资源和配送库存。在所属气站及平台授权范围内,配送点还可管理本点服务人员和用户服务关系。它不管理生产批次主档,不处理平台总账,也不调整可燃气体安全规则。
## 2. 功能范围
| 模块 | 功能 |
| --- | --- |
| 配送点基础资料 | 配送点地址、覆盖区域、营业时段、车辆、容量、联系人和状态 |
| 服务人员管理 | 创建和管理配送员、安装维修员、安检员的本站/本点归属、资质、班次、可接单状态、负载、评分和异常率;安全相关角色须经平台审核后生效 |
| 用户管理 | 创建线下用户待激活档案、邀请注册、管理本点服务用户、地址、配送偏好、订单、预约、回访与投诉协同 |
| 邀请注册二维码 | 创建、下载、分享、停用和分析本点邀请注册二维码;扫码注册后自动建立本点用户服务关系 |
| 订单调度 | 接收站点/平台配送需求,自动分单、人工改派、预约、路线、配送轨迹、时效预警 |
| 配送仓 | 调拨入库、出库、拣货、交接、在途、盘点、退回、损耗与批次追溯 |
| 履约质控 | 到达/签收证据、异常审核、拒收/货损、客服协同、配送服务评分 |
| 运营对账 | 按配送任务核算服务费、人员收益、车辆成本、库存差异和站点结算数据 |
## 3. 服务人员管理
配送点可在平台与所属气站配置的角色、服务区域和人员数量上限内,创建、维护和调度本点服务人员。人员使用服务端 App 时,只能看到本人角色、本点/本站和授权服务区域内的任务。
| 功能 | 需求与规则 |
| --- | --- |
| 创建与关联 | 录入姓名、手机号、实名资料、紧急联系人、服务区域、所属气站/配送点和入职信息;已有平台人员可申请关联到本点,不重复创建账号 |
| 角色与能力 | 配置配送、安装维修、安检角色,以及车辆、工具、技能、证书、培训、保险和有效期;角色能力独立生效 |
| 审核与启用 | 配送角色按平台规则审核;安装维修和安检等安全相关角色必须经平台或安全主管审核后才可接收对应任务 |
| 班次与调度 | 设置班次、上班状态、最大负载、预约窗口、服务区域和可服务商品/设备型号;可对本点任务派单、改派、暂停接单 |
| 绩效与处置 | 查看任务时效、签收/完工质量、评分、投诉、违规、收益和分账;可发起离职、冻结、跨点支援或调动申请,最终生效按气站/平台审批规则执行 |
## 4. 用户管理
配送点管理的是与本点履约相关的用户及其服务关系,不拥有平台全局用户账户的完全控制权。用户可自主注册;配送点也可为线下客户创建待激活档案或发送注册邀请。
| 功能 | 需求与规则 |
| --- | --- |
| 创建与关联 | 录入姓名、手机号、服务地址、来源和配送偏好;手机号对应已有平台账户时,只建立服务关系,不得创建重复账户 |
| 用户列表 | 按配送区域、订单状态、预约时间、设备/安全提示、服务频次、投诉和来源筛选;仅展示本点服务范围内用户 |
| 用户服务视图 | 查看完成配送所需的地址、联系人、订单、预约、交接要求、售后和投诉记录;手机号、地址、设备和资金数据按字段权限脱敏 |
| 服务运营 | 创建配送预约、联系记录、回访、配送异常、售后协同和经授权的服务通知;营销触达必须取得用户授权并遵守平台频控 |
| 账户处置 | 可发起资料纠错、重复用户合并、服务关系解除和风险标记;账号冻结、设备控制限制和正式注销由平台审批处理 |
### 4.1 配送点邀请注册二维码
配送点可在授权服务区域内创建邀请注册二维码,用于配送员推广、社区活动、自提点或线下客户建档。用户扫码后完成注册/登录和地址确认,系统将用户服务关系归属到该配送点,并可按规则同时关联所属气站。
| 配置项 | 说明 |
| --- | --- |
| 邀请类型 | 通用配送点码、配送员专属码、社区/自提点码、活动码;专属码用于邀请来源和绩效归因 |
| 有效范围 | 关联配送点、所属气站、可选覆盖区域、最大使用次数、有效期、适用活动和可配送服务 |
| 二维码操作 | 生成、预览、下载 PNG/SVG、复制注册链接、停用、重新生成和查看扫码/注册/首单转化统计 |
| 扫码结果 | 新用户进入注册;已有用户登录确认后建立服务关系;地址不在配送范围时提示用户选择有效配送点或联系气站 |
| 归属规则 | 用户通过配送点码注册时,配送点为默认履约服务点;后续变更遵循服务区域、订单和用户确认规则,不因重复扫码覆盖原服务关系 |
二维码使用平台签名的邀请码或短链接,令牌可过期、达到次数上限或被配送点/平台停用。二维码中不得包含用户隐私、人员账号、库存或接口密钥;扫码、注册、服务关系建立、归因和异常拦截均须审计。
## 5. 调度规则
- 分单同时考虑覆盖区域、预约窗口、配送员上班状态、车辆/载重、技能、当前负载、库存可用性和风险等级。
- 高优先级安全相关配送任务可插单,但应记录影响订单、调度人或规则版本。
- 配送员未在时限内接单、长期无定位/无进度、异常率超过阈值时触发回收、改派或人工干预。
- 签收成功才扣减配送点实际库存;发生拒收或货损时先冻结对应库存与结算,待审核后再回流或报损。
### 配送轨迹管理
- 调度员可在配送任务详情查看轨迹地图和事件时间线:分配、接单、出发、位置点、到达、签收、异常、改派和取消;支持按订单、配送员、配送区域、时间筛选。
- 轨迹点显示定位时间、接收时间、坐标、精度、来源、任务状态和异常标记。系统识别长时间无位置、偏离服务区域、异常速度、轨迹中断和签收前未到达等情况,并创建调度提醒。
- 轨迹仅用于订单履约、时效分析、客户争议和安全管理。配送点管理员只能查看本点任务;导出、回放和精确坐标访问受权限、审批和审计控制。
- 改派后旧任务轨迹只读保留,新任务独立采集;订单页面按时间串联两段任务,确保轨迹和责任人可追溯。
## 6. 数据边界、审核与审计
- 配送点只能管理归属本点的服务人员,以及本点覆盖区域、订单或预约关联的用户服务关系;不得查看其他配送点、气站或平台无关用户的数据。
- 人员、用户、配送点均使用平台全局唯一编号。删除采用停用、归档或解除服务关系,不能物理删除历史订单、签收证据、资金、设备或安全记录。
- 新增/编辑人员、授予角色、变更班次、用户建档/关联、派单/改派、导入/导出、冻结/解冻等操作,必须记录操作人、配送点、前后值、原因、时间和关联业务对象。
- 跨配送点调动人员、转移用户服务关系、调拨库存或改变配送区域,须由源配送点、目标配送点、所属气站和平台按权限审批,并校验未完成任务、在途库存、投诉、结算和安全事件。
## 7. 扩展能力
- 路线优化、电子围栏、车辆温湿度/位置、智能柜、自提点、众包配送和配送能力预测。

View File

@@ -0,0 +1,34 @@
# 生产管理系统需求
## 1. 定位与使用者
生产管理系统用于智能瓶阀及关联配件的生产、质量、设备身份和出厂追溯。使用者包括生产计划员、产线操作员、质检员、仓管、售后质量人员和生产管理员。系统将合格设备安全地登记到 IoT 平台,但不承担用户绑定、订单履约和平台安全运营。
## 2. 功能范围
| 模块 | 功能 | 关键规则 |
| --- | --- | --- |
| 产品与物料 | 设备型号、BOM、硬件/固件版本、供应商、物料批次 | 设备模型与 IoT 能力由平台审核后发布 |
| 生产计划 | 工单、产线、工序、产量、人员、进度与异常 | 生产工单与设备序列号可关联 |
| 设备身份 | 序列号、二维码、设备证书、密钥注入、MAC/模组信息 | 一机一档;密钥不以明文导出,启用轮换和吊销 |
| 质量检验 | 来料、过程、出厂检验,压力/密封/通信/开关测试,缺陷与返工 | 未通过出厂检验的设备不得激活或流入销售库存 |
| 固件管理 | 固件版本、兼容型号、签名、测试、灰度、回滚和升级记录 | 固件发布需审批;生产烧录与在线 OTA 记录可追溯 |
| 仓储与出厂 | 成品入库、批次、出库、调拨至可燃气体站/配送点、召回 | 流转记录保留生产批次、质检结论与接收方 |
| 售后质量 | RMA、故障代码、失效分析、批次质量趋势、召回任务 | 可回溯到设备、批次、固件和供应商 |
## 3. 设备入网流程
```mermaid
flowchart LR
A[生成序列号和二维码] --> B[安全注入设备身份]
B --> C[产线功能与安全测试]
C --> D{出厂质检合格}
D -->|否| E[返工/报废与原因记录]
D -->|是| F[登记设备模型、批次、固件]
F --> G[同步平台设备主档并允许激活]
G --> H[调拨至站点/配送点或销售库存]
```
## 4. 扩展能力
- MES/ERP 集成、供应商质量管理、电子作业指导书、自动测试台、碳足迹、预测性质量分析和召回演练。

View File

@@ -0,0 +1,28 @@
# API 中心管理系统需求
## 1. 定位与使用者
API 中心管理系统用于治理平台向可燃气体站、生产合作方、配送合作方、设备厂商和经授权第三方开放的 API。它提供 API 产品、调用方、凭证、订阅、配额、文档和审计管理;不替代平台总后台对订单、设备、资金等业务事实的主数据管理。
## 2. API 产品管理
| 模块 | 功能 | 规则 |
| --- | --- | --- |
| API 目录 | 设备查询、遥测订阅、订单同步、库存调拨、售后、内容等 API 产品 | 按业务域、版本、环境、受众、数据等级和 SLA 管理 |
| 生命周期 | 设计、评审、发布、灰度、废弃、下线 | OpenAPI/AsyncAPI 契约版本化;破坏性变更需弃用期和通知 |
| 应用接入 | 合作方组织、应用、回调地址、用途、负责人、资质审核 | 一应用一身份;生产环境需审核后开通 |
| 认证授权 | OAuth 2.1/OIDC、客户端凭证、mTLS、签名、密钥轮换和吊销 | 最小权限、短期令牌、密钥不可明文回显 |
| 流量治理 | 配额、限流、并发、IP/地域策略、熔断、重试、沙箱 | 按 API 产品和调用方策略执行;高风险写操作可二次签名 |
| 事件订阅 | Webhook、MQTT/消息主题、事件 Schema、投递重试和死信 | 消息签名、幂等事件 ID、订阅范围及回放权限受控 |
| 监控审计 | 调用量、成功率、延迟、错误、配额、敏感访问、导出 | 不记录完整密钥和敏感载荷;可关联 request_id 和审计事件 |
## 3. 对外接口安全红线
- 默认不开放远程开阀、强制解除安全限制、提现审核等高危能力;确需开放须独立 API 产品、最小范围、双重鉴权、审批和实时审计。
- 对外查询仅返回调用方业务所需字段,用户手机号、地址、定位、视频、资金信息按数据分类和授权协议最小化提供。
- Webhook 必须校验回调地址、签名、超时、重试和幂等;失败事件进入可追踪的死信队列。
## 4. 开发者体验与扩展
- 提供沙箱、模拟数据、在线文档、SDK、变更公告、调用日志、工单和状态页。
- 扩展 API 商店、套餐计费、合作方评分、数据共享审批、字段级脱敏模板和跨境数据合规检查。

View File

@@ -0,0 +1,178 @@
# 技术实现规划(多端系统架构)
## 1. 架构原则
首期采用“模块化单体 + 独立 Worker/Iot 进程”形态:核心业务在一个 Go 后端仓中按领域清晰分层HTTP API、异步 Worker 与 IoT 接入可独立部署和弹性扩缩。该方案能以较低复杂度交付跨域闭环,同时为后续按设备安全、交易、履约、资金和通知拆分服务保留边界。
- 所有管理系统统一使用 Vue 3 + TypeScript减少多套 Web 技术栈的组件、权限和运维成本。
- `sample/front` 是所有 Vue 管理端的前端工程基线;`sample/server` 是 Go 后端工程基线。新项目应沿用其规范、公共能力和质量要求,不应复制后形成不可维护的分叉。
- 所有外部 API 与事件契约版本化;关键业务事件使用可重放的持久化消息,不能依赖 Redis Pub/Sub 的临时广播语义。
- PostgreSQL 保存交易、设备、安全和资金事实Redis 仅保存缓存、会话、限流、延迟任务与异步事件流,不替代业务事实库。
## 2. 技术选型
| 层级 | 推荐技术 | 用途 |
| --- | --- | --- |
| 用户端 App | Flutter | 用户设备、安全、商城、订单、钱包、消息和个人中心 |
| 服务端 App | Flutter | 安装维修、安检、配送三类工作台;通过角色与能力包控制模块 |
| 平台总后台 | Vue 3 + TypeScript | 全局治理、运营、财务、安全、审计等高密度管理页面 |
| 可燃气体站管理系统 | Vue 3 + TypeScript | 站点商品、订单、服务、库存与经营管理 |
| 配送点管理系统 | Vue 3 + TypeScript | 调度、配送仓、路线、人员和配送运营工作台 |
| 生产管理系统 | Vue 3 + TypeScript | 生产计划、设备身份、质检、批次、固件和出厂追溯 |
| API 中心管理系统 | Vue 3 + TypeScript | API 产品、调用方、凭证、流量、文档与审计门户 |
| 核心后端 | Go | REST/BFF、领域服务、权限、订单、工单、资金、规则执行 |
| IoT 通道 | MQTTTLS+ Go 接入服务 | 设备连接、遥测、命令下发、回执、在线状态;协议适配层屏蔽厂商差异 |
| 关系数据 | PostgreSQL | 事务数据、JSONB 扩展字段、地理空间PostGIS、分区表和审计 |
| 缓存与任务 | Redis | 限流、会话、幂等、短期状态、延迟任务;关键事实仍落 PostgreSQL |
| 消息/事件 | Redis Streams + Consumer Group | 遥测流、告警、订单状态、通知、对账异步化;使用消费组、重试、死信与幂等消费者保障可恢复处理 |
| 文件与证据 | S3 兼容对象存储MinIO/云 OSS | 商品图、安装/安检证据、签收图片、视频和合同;采用短期签名 URL 与生命周期策略 |
| Web 入口与部署 | Caddy + Shell 脚本 | TLS 终止、反向代理、静态文件、压缩、健康检查与受控发布;配置和脚本纳入版本控制 |
| 可观测性 | OpenTelemetry + Prometheus + Grafana + Loki | 指标、链路、日志、告警与审计关联 |
## 3. 推荐部署拓扑
```mermaid
flowchart LR
APP[Flutter Apps] --> GW[API Gateway / BFF]
WEB[Vue 3 管理系统] --> GW
GW --> CORE[Go Core API]
CORE --> PG[(PostgreSQL + PostGIS)]
CORE --> R[(Redis Cache / Streams)]
CORE --> OSS[Object Storage]
DEV[智能瓶阀设备] --> MQTT[MQTT TLS 接入]
MQTT --> IOT[Go IoT Adapter]
IOT --> R
R --> WORKER[Go Worker]
WORKER --> RULE[告警规则、工单、通知、对账]
CORE --> EXT[支付/合同/短信/地图]
```
### 3.1 运行进程职责
| 进程 | 职责 | 扩缩与可靠性要求 |
| --- | --- | --- |
| `api` | 用户端和五个管理系统的 HTTP API、鉴权、同步业务事务 | 无状态部署;所有写操作支持幂等键、事务和审计 |
| `worker` | 事件消费、告警、派单、推送、对账、超时扫描、轨迹异常识别 | Redis Streams 消费组;重试、死信、幂等消费和可观测的积压告警 |
| `iot` | MQTT 设备会话、协议适配、遥测校验、命令下发与回执 | 保持设备会话一致性;命令/回执持久化;协议版本和设备身份校验 |
关键业务采用“数据库事务 + Outbox 事件表 + Worker 投递”的模式:先在 PostgreSQL 提交业务事实与待投递事件,再异步写入 Redis Streams。这样 Redis 故障或 Worker 重启不会丢失订单、告警、支付或设备命令的业务事实。
## 4. 前后端项目标准库
| 基线 | 路径 | 使用要求 |
| --- | --- | --- |
| 前端标准库 | `sample/front` | 五个 Vue 管理系统从该工程统一前端框架、路由、状态管理、请求封装、权限指令、表格表单、主题、错误处理、国际化与测试规范 |
| 后端标准库 | `sample/server` | Go API、Worker、IoT 进程统一沿用配置、日志、错误码、认证、数据库访问、迁移、任务、测试和发布规范 |
业务项目应通过共享包、模板或上游同步机制复用标准库,禁止将标准库目录复制到每个子项目后自行漂移。标准库升级需要记录版本、影响范围、兼容策略和回滚方式。
## 5. 研发目录规划(建议)
```text
platforms/
docs/ # 本需求文档集
apps/
user_app/ # Flutter 用户端 App
service_app/ # Flutter 服务端 App安装维修、安检、配送能力包
frontend/
platform_admin/ # Vue平台总后台
gas_admin/ # Vue气站管理系统
delivery_admin/ # Vue配送点管理系统
product_admin/ # Vue生产管理系统
openapi/ # VueAPI 中心管理系统
site/ # HTML官网land页
backend/
api/ # Go HTTP API、BFF、同步领域事务
worker/ # Go 异步任务:派单、告警、通知、对账、超时扫描
iot/ # Go MQTT 协议适配、设备命令、遥测与回执
migrations/ # PostgreSQL 迁移、初始化数据与回滚说明
contracts/
openapi/ # HTTP API 契约及生成配置
asyncapi/ # MQTT/Redis Streams 事件契约与 Schema
deploy/
caddy/ # Caddy 配置、站点与证书策略
scripts/ # 服务器部署、启停、健康检查、回滚 Shell 脚本
scripts/ # 本地开发、生成、编译、质量检查 Shell 脚本
tests/
rest/ # HTTP API 集成与回归测试
contract/ # OpenAPI/AsyncAPI 兼容性测试
e2e/ # 关键端到端流程
performance/ # 遥测、订单、轨迹与消息积压压测
```
该结构是后续开发建议,不代表本次创建了任何代码目录或代码文件。
## 6. 后端领域划分
- `identity`登录、验证码、账号、RBAC、组织、数据范围、协议同意。
- `organization`:气站、配送点、服务区域、人员归属、用户服务关系和邀请注册二维码。
- `device`:设备注册/绑定、设备模型、遥测、命令、在线状态、固件。
- `safety`规则、告警事件、分级、SLA、整改、安检、复检、升级。
- `catalog`分类、商品、SKU、库存、优惠券、收藏、购物车。
- `order`:订单、支付、合同、配送、安装、售后、评价。
- `dispatch`:服务人员、区域、班次、任务、派单、导航、配送轨迹与现场取证。
- `wallet`:充值、余额流水、分账、结算、提现、对账。
- `content`:轮播、公告、协议、视频、客服配置。
- `notification`:站内信、推送、短信、语音、模板、触达回执。
- `audit`:不可变操作日志、敏感数据访问记录、导出记录。
- `manufacturing`:设备型号、生产工单、序列号、证书注入、质检、批次、固件和出厂追溯。
- `openapi`API 产品、调用方应用、凭证、订阅、配额、网关策略、Webhook 和调用审计。
## 7. 工程质量基线
### 7.1 数据模型与命名强制规范
- 每个业务模块的关系表必须使用模块前缀,格式为 `<模块前缀>_<实体名>`,全小写蛇形命名。禁止使用无领域归属的通用表名,如 `users``orders``records`
- 文件名、表名、模型名和接口 Schema 必须以同一“模块前缀 + 单数实体词根”为唯一标识;禁止因为语言、层次或集合含义改变实体名称,也禁止使用复数形式造成不一致。
| 模块 | 表前缀 | 典型表 |
| --- | --- | --- |
| 身份与权限 | `idn_` | `idn_account``idn_role``idn_permission` |
| 组织与服务关系 | `org_` | `org_gas_station``org_delivery_point``org_service_person``org_user_service_relation` |
| 设备与物联网 | `dev_` | `dev_device``dev_telemetry``dev_command` |
| 安全与安检 | `saf_` | `saf_event``saf_rule``saf_inspection``saf_rectification` |
| 商品与营销 | `cat_` | `cat_product``cat_sku``cat_coupon``cat_cart` |
| 订单与履约 | `ord_` | `ord_order``ord_payment``ord_service_task``ord_delivery_track` |
| 调度与配送 | `dsp_` | `dsp_assignment``dsp_shift``dsp_delivery_track_point` |
| 钱包与结算 | `wal_` | `wal_ledger``wal_settlement``wal_withdrawal` |
| 内容与通知 | `cnt_``ntf_` | `cnt_article``cnt_banner``ntf_message``ntf_template` |
| 生产与质量 | `mfg_` | `mfg_work_order``mfg_batch``mfg_quality_check` |
| 开放接口 | `api_` | `api_product``api_client``api_subscription` |
| 审计与平台任务 | `aud_``sys_` | `aud_operation_log``sys_outbox_event``sys_dead_letter_event` |
- 所有主表必须包含 `identity` 字段,类型为 UUID V7并作为该表的主键。UUID V7 由应用服务生成,保证时间有序性;禁止使用数据库自增主键、随机 UUID V4 或将业务编号作为主键。
- 引用主表时,外键字段命名为 `<实体名>_identity`,例如 `order_identity``service_person_identity`。业务展示编号(订单号、设备编码、站点编码等)应使用独立字段并设置唯一约束,不能替代 `identity`
- 每个主表还应按需要包含 `created_at``updated_at``created_by_identity``updated_by_identity``status``version` 等审计/并发字段;资金流水、安全事件、审计日志等不可变记录不得被物理删除。
- 数据库表、字段、索引、约束和枚举必须编写中文注释;注释说明业务含义、取值/单位、脱敏或留存要求。迁移脚本需同步维护注释,禁止只在设计文档中说明。
#### 实体名、文件名、表名、模型名一致性
`org_gas_station` 为例,同一业务实体必须按下表命名:
| 产物 | 强制命名 | 禁止示例 |
| --- | --- | --- |
| 数据库表 | `org_gas_station` | `org_gas_stations``gas_stations``station` |
| Go 模型文件/类型 | `org_gas_station.go` / `OrgGasStation` | `gas_station.go``GasStations``StationModel` |
| Flutter 模型文件/类型 | `org_gas_station.dart` / `OrgGasStation` | `gas_stations.dart``GasStationEntity` |
| Vue 模型文件/类型 | `org_gas_station.ts` / `OrgGasStation` | `gasStation.ts``GasStations` |
| OpenAPI/AsyncAPI Schema | `org_gas_station` | `GasStationDto``gas_stations` |
| 迁移文件 | `<时间戳>_create_org_gas_station.sql` | `<时间戳>_create_gas_stations.sql` |
- 所有实体一律使用单数:一个 `org_gas_station` 既可表示单个站点模型,也可作为列表返回项的模型名称。列表、批量和分页仅在 API 动词或响应字段表达,例如 `GET /org/gas-station/list``items: []`;不改变实体名。
- 关联表使用参与实体的单数词根和明确关系词,例如 `org_user_service_relation``idn_account_role_relation`,不得使用 `users_roles``user_roles` 等复数或含糊名称。
- 文件目录可以按业务模块组织,但目录名不参与实体命名;模型、迁移、契约、测试文件都必须能从其文件名唯一定位到同名的数据库表和模型。
- 新增实体前应先登记规范名称;重命名须同时修改表、模型、文件、契约、迁移和中文注释,并进行全仓引用检查,禁止仅改其中一层。
### 7.2 代码与模型中文注释规范
- Go、Flutter 和 Vue 代码中的业务类型、领域模型、枚举、公开接口、复杂规则、状态机、金额计算、权限判断和异步事件必须使用中文注释说明业务意图。
- 中文注释应解释“为什么”和业务口径,不重复代码字面含义;对外 API 的字段说明、OpenAPI/AsyncAPI Schema 描述和错误码说明同样必须为中文。
- 模型注释应与数据库注释和接口契约保持一致。需求变更导致字段、状态或规则变化时,代码、迁移、模型和契约注释必须在同一变更中更新。
- 注释中应使用与表名/模型名一致的中文业务名称,例如“气站”对应 `org_gas_station`不能在同一业务语境混用“站点”“气站信息”“GasStations”等不同实体名。
- 禁止以无意义拼音、英文缩写或临时注释代替业务说明;第三方库、协议标准和专有名词可保留其原文,并在首次出现处附中文解释。
- API 使用 OpenAPIIoT/事件使用 AsyncAPI 或明确的版本化 Schema客户端由契约生成类型。
- Redis Streams 的生产者、消费者、重试和死信处理均须有监控任何消费者可安全重复执行Redis 不可用时由 Outbox 补偿投递。
- 所有管理端沿用 `sample/front` 的鉴权、数据权限、错误处理和审计埋点;所有 Go 进程沿用 `sample/server` 的配置、日志、迁移和健康检查规范。
- 单元测试覆盖规则、金额、状态机、权限;集成测试覆盖支付回调、设备回执、派单和并发库存;端到端测试覆盖高风险安全闭环。
- CI 必须执行静态检查、依赖漏洞扫描、迁移检查、契约兼容性检查和关键路径自动化测试CD 必须先执行数据库迁移兼容性检查、健康检查和可回滚发布。

View File

@@ -0,0 +1,95 @@
# 数据接口与安全规范
## 1. 核心数据域
### 数据模型强制约定
- 主表命名使用领域模块前缀,具体前缀以 [技术实现规划](10-技术实现规划.md) 的“数据模型与命名强制规范”为准;禁止跨模块使用无前缀的通用表名。
- 同一实体的数据库表、迁移文件、Go/Flutter/Vue 模型文件、模型类型和 OpenAPI/AsyncAPI Schema 必须使用相同的模块前缀与单数实体词根。例如 `org_gas_station``org_gas_station.go``OrgGasStation` 属于同一实体;禁止使用 `org_gas_stations``GasStations` 等复数或不同词根。
- 每个主表必须以 `identity` 字段作为 UUID V7 主键。所有关联字段使用 `<实体名>_identity` 命名,业务编号仅作展示和检索,不作为主键或跨表关联依据。
- 表、字段、索引、约束、枚举及接口模型必须有中文注释;涉及金额、单位、状态、定位、脱敏和留存的数据须在注释中明确口径。
| 数据域 | 核心实体 | 关键约束 |
| --- | --- | --- |
| 身份组织 | `idn_account``idn_role``idn_permission``org_gas_station``org_service_area``idn_emergency_contact` | 手机号/账号唯一;角色和数据范围均生效;紧急联系人授权范围单独记录 |
| 设备 | `dev_device``dev_device_binding``dev_device_group``dev_cylinder``dev_telemetry``dev_command` | 设备序列号唯一;绑定有有效期与历史;命令含幂等键与回执;气瓶信息保留来源和有效期 |
| 安全 | `saf_rule``saf_event``saf_repair_request``saf_inspection``saf_rectification` | 事件编号唯一等级、状态、SLA、证据、操作者完整可追溯报修图片/定位需有采集时间 |
| 商品交易 | `cat_category``cat_product``cat_sku``cat_cart``cat_coupon``ord_order``ord_payment``ord_invoice` | 金额使用最小货币单位整数;库存扣减有事务/预占规则;预约时段、库存快照和开票状态可追溯 |
| 履约 | `ord_service_task``dsp_assignment``ord_delivery_track``dsp_delivery_track_point` | 任务状态转换受限;定位、轨迹和证据均有采集时间 |
| 资金与押金 | `wal_wallet_ledger``wal_deposit``wal_deposit_refund``wal_settlement``wal_withdrawal``wal_reconciliation` | 流水不可更新删除;金额方向、关联对象和余额快照可校验;退押金保留验收、扣减和退款去向 |
| 用气统计 | `dev_usage_stat``dev_usage_report` | 明确统计周期、单位、来源、计算版本和最后更新时间;报表导出留痕 |
| 内容审计 | `cnt_article``cnt_banner``cnt_notice``aud_operation_log` | 发布有版本;审计日志追加写入且设置留存期限 |
## 2. API 约定
- 外部 HTTP 接口采用 `/api/v1` 版本前缀JSON 格式UTC 时间 ISO 8601金额传最小货币单位枚举使用稳定代码。
- 写操作携带 `Idempotency-Key`;响应带 `request_id`;异步动作返回业务任务/命令 ID而非伪造同步成功。
- 分页使用游标优先;敏感字段按角色脱敏;下载使用短效签名 URL 和用途审计。
- 错误码分为认证、权限、参数、状态冲突、限流、外部依赖和系统异常;前端不能依据错误文案判断流程。
### 关键接口族(逻辑级)
| 域 | 示例能力 |
| --- | --- |
| 认证 | 登录、验证码、令牌刷新、注销、协议同意、角色切换 |
| 设备 | 绑定/解绑申请、设备列表/详情、命令创建/查询、遥测历史、群组控制、气瓶信息、自动关闭时间、共享授权 |
| 安全 | 事件列表/详情、确认、派单、检查提交、整改提交、复检、规则管理、一键报修、紧急联系人与紧急通知 |
| 商城 | 商品/分类、购物车、优惠试算、气瓶预约订单、库存查询、支付、合同、售后、电子发票 |
| 履约 | 任务列表、接单、导航、到达、检查表、完成、异常、改派 |
| 配送轨迹 | 轨迹点上报、任务轨迹查询、用户简化轨迹查询、预计到达、轨迹异常和轨迹导出审批 |
| 资金与押金 | 充值、余额支付密码、流水、提现申请、押金汇总、退瓶退押金、审核、对账、结算 |
| 用气统计 | 月度/年度统计、报表明细、导出任务 |
| 邀请注册 | 邀请二维码创建/查询/停用、短链接解析、扫码校验、注册归因、气站/配送点服务关系建立 |
## 3. IoT 协议与可靠性
- 设备采用 MQTT over TLS设备身份使用每设备证书或短期轮换令牌禁止共享默认密钥。
- 上行消息至少包含设备 ID、协议版本、消息 ID、设备时间、服务端接收时间、指标值、质量标记和固件版本。
- 下行命令包含命令 ID、幂等键、期望状态、过期时间、签名/鉴权信息;设备回传已收到、执行中、成功/失败与错误码。
- 规则计算以服务端接收时间为准并保留设备时间;乱序、重复、缺失遥测应有容错和告警策略。
- 自动关阀须优先在设备本地具备安全兜底逻辑,云端规则作为补充;网络中断不能成为失去基本安全保护的单点原因。
## 3.1 邀请注册二维码安全要求
- 二维码载荷仅为随机、签名且可撤销的邀请码或短链接,不得直接包含组织管理员身份、用户信息、地址、长期访问令牌或 API 密钥。
- 服务端解析后校验二维码状态、归属气站/配送点、有效期、使用次数、服务区域、风险策略和用户登录状态;所有校验均在服务端完成。
- 同一用户多次扫码不重复创建账户;服务关系的首次建立、变更和归因要有幂等键及完整审计。用户已有服务关系时,页面应告知影响并要求确认。
- 对二维码生成、下载、分享链接访问、扫码、注册、失败原因、停用和重新生成记录审计;支持按二维码、组织、人员和活动查询转化漏斗。
- 邀请短链接应具备 HTTPS、频率限制、反爬/风控校验和安全跳转白名单;二维码泄露后可由所属气站、配送点或平台立即停用。
## 3.2 配送轨迹数据与隐私要求
- 轨迹数据至少包括配送任务 ID、订单 ID、配送员 ID、定位时间、服务端接收时间、坐标、定位精度、来源、任务状态和完整性标记。位置点不可用订单创建时间替代。
- 客户端按后台配置的间隔、距离变化和状态节点采集;服务端进行去重、乱序校正、异常速度/精度标记和幂等写入。弱网补传保留原始定位时间和补传标记。
- 用户端只返回本人订单所需的简化轨迹、最近有效位置、预计到达和事件节点;配送点/气站/平台按组织和职责获取更详细数据。精确轨迹回放及导出应审批并记录用途。
- 轨迹属于敏感定位数据,传输与存储加密、最小化留存、访问审计;订单完结后按留存策略降精度展示或限制访问。严禁将配送员非履约时间的位置用于无关用途。
## 3.3 服务端 App 工单、取证与结算要求
| 场景 | 核心实体 | 必要数据与规则 |
| --- | --- | --- |
| 人员准入与打卡 | `idn_service_person_credential``idn_service_person_vehicle``idn_service_person_check_in``saf_training_attempt` | 角色、证件有效期、车辆、上/下班位置、培训题目版本与结果必须可追溯;未通过准入/培训不可开始任务 |
| 安检与隐患 | `saf_inspection``saf_inspection_item_result``saf_inspection_photo``saf_user_signature``saf_hazard` | 检查项、风险等级、定位/时间水印、签名、隐患状态和整改证据绑定同一任务;高风险事件与关阀/通知动作关联 |
| 维修工单 | `ord_service_task``ord_repair_evidence``ord_repair_material``ord_repair_receipt` | 维修前中后证据、材料、价格快照、应收/实收、签字和支付差异可追溯;不能由服务人员修改订单定价 |
| 安装工单 | `ord_installation_condition``ord_installation_material``ord_installation_step``ord_installation_test``ord_installation_receipt` | 使用条件、备料、安装步骤、测试、前期安检、设备激活和收款按顺序记录;不合格或测试失败不能完成/激活 |
| 配送与回收 | `dsp_delivery_cylinder_scan``dsp_delivery_evidence``dsp_delivery_payment_confirmation``dsp_cylinder_return` | 气瓶/设备编码、蓝牙/扫码来源、随瓶安检照片视频、收款确认、空瓶回收、押金和库存状态均与配送任务关联 |
| 服务收入 | `wal_service_income``wal_service_withdrawal``wal_bank_card` | 收入由已完成且符合结算规则的任务生成;提现以可提现余额、银行卡验证、审核和打款回执为准 |
- 现场照片、视频、电子签字、蓝牙扫描、定位和收款确认属于取证数据。必须记录原始采集时间、服务端接收时间、任务、操作者、来源、完整性标记和对象存储哈希;客户端离线补传不得覆盖原始采集时间。
- 强制取证项由任务类型、设备型号、风险等级和组织规则确定。服务端在工单完成前校验必填检查项、照片/视频数量、签字、地理围栏、材料和支付状态,前端按钮禁用不能替代服务端校验。
- 收款、押金、退款和服务收入均以不可变流水为准。配送员/安装维修员仅能提交确认材料,不得创建、修改或删除资金事实;出现金额不一致、重复提交或离线补传冲突时进入对账异常。
## 4. 安全、隐私与合规
- 登录令牌短期有效,刷新令牌可撤销;后台高权限账号启用 MFA、IP/设备策略和强密码。
- 权限校验在服务端执行,前端菜单隐藏不构成权限控制。按角色、站点、区域、对象归属联合鉴权。
- 手机号、地址、身份证明、收款账户、定位、视频为敏感数据:传输 TLS、存储加密/字段加密、显示脱敏、访问留痕、最小化留存。
- 所有支付回调验证签名与金额、订单、商户号一致性;合同文件使用可信第三方原文与哈希存证。
- 图片/视频上传做文件类型、大小、病毒/恶意内容检测;访问采用短期授权,不使用公开桶。
- 设备控制、告警等级调整、资金审核、数据导出、账号注销等高风险操作要求二次确认和审计。
## 5. 备份与灾备
- PostgreSQL 至少每日全量、持续 WAL 归档并定期演练恢复;安全事件、订单和资金数据定义更严格 RPO/RTO。
- 对象存储启用版本/生命周期策略,合同和安全证据按合规期限留存;备份不得绕开数据加密和访问控制。
- 关键服务多实例部署MQTT、数据库、消息队列和对象存储须有明确高可用方案和故障演练计划。

View File

@@ -0,0 +1,53 @@
# 验收与迭代规划
## 1. MVP 建议范围
优先上线“设备安全闭环 + 基础履约闭环”,避免在安全规则、支付合同和复杂分账均未明确时一次性铺开全部商城能力。
| 版本 | 必须交付 | 可后置 |
| --- | --- | --- |
| M0 基础底座 | 账号/RBAC、气站/区域、设备接入、审计、通知、基础后台 | 多站点结算、复杂 BI |
| M1 安全闭环 | 绑定、状态/遥测、开关控制回执、告警分级、自动关阀、安检/整改/复检、用户/平台通知 | 设备共享、固件 OTA、视频会诊 |
| M2 交易履约 | 商品、购物车、订单、支付、地址、配送/安装任务、配送轨迹、核销、售后基础 | 发票、订阅、复杂促销 |
| M3 资金运营 | 钱包充值、佣金、提现审核、对账、数据看板、内容运营 | 自动打款、预测模型、合作方开放平台 |
## 2. 关键验收场景
| 编号 | 场景 | 通过标准 |
| --- | --- | --- |
| AC-01 | 用户扫码绑定设备 | 合法未绑定设备成功;已绑定/不存在/无权限设备被拒绝且提示可处理原因 |
| AC-02 | 远程关阀 | 请求、下发、设备回执和审计完整;无回执时显示待确认而非成功 |
| AC-03 | 高风险自动告警 | 模拟达到规则阈值,系统创建 1 级事件、尝试关阀、通知用户/平台、生成 SLA 和责任任务 |
| AC-04 | 高风险开阀拦截 | 未整改的高风险事件存在时,普通用户不能直接开阀;拦截原因与申诉/处理入口可见 |
| AC-05 | 安检不合格 | 安检员提交等级和证据后,用户/平台均收到通知;状态进入待整改,超时可升级 |
| AC-06 | 安装环境不合格 | 安装员不能将任务直接完成;系统产生整改/复检链路并保留检查表 |
| AC-07 | 支付与履约 | 支付回调重复到达不重复扣款/建单;订单正确创建配送/安装任务并按权限展示 |
| AC-08 | 提现审核 | 余额不足无法申请;拒绝必填原因;打款状态和流水可追溯且不可由申请人篡改 |
| AC-09 | 租户隔离 | 气站管理员无法通过列表、导出、接口 ID 猜测读取其他站点数据 |
| AC-10 | 审计与恢复 | 可查询关键操作前后值;在演练环境从备份恢复核心数据并达到目标 RPO/RTO |
| AC-11 | 配送轨迹 | 配送员接单、出发、位置上报、到达和签收均按任务记录;用户仅能查看本人订单的简化轨迹,配送点/气站查看本组织完整轨迹;改派、弱网补传和异常轨迹可追溯 |
| AC-12 | 智能瓶阀群组控制与报修 | 群组开/关逐设备返回命令结果并拦截高风险开阀;一键报修按类型、描述、地址、定位和照片创建工单,定位/图片时间可追溯 |
| AC-13 | 气瓶预约订单 | 用户选择配送公司、规格、数量和预约时段后,系统冻结库存并计算费用;余额支付校验支付密码、余额和幂等回调,不重复扣款或建单 |
| AC-14 | 押金、退押与电子发票 | 押金按设备/规格/数量汇总;退瓶申请保留验收、扣减与退款去向;电子发票按时间范围查询、预览并在授权后保存/下载 |
| AC-15 | 紧急联系人与用气统计 | 泄漏报警自动关阀后通知已授权紧急联系人;用户只能查看本人设备的月度/年度用气统计,数据周期、单位和更新时间清晰可见 |
| AC-16 | 安检任务与隐患闭环 | 安检员完成每日培训、上班和区域校验后才能开始任务;检查项、分类照片水印、用户签字和风险等级完整保存,不合规自动创建可跟踪的隐患整改任务 |
| AC-17 | 安装/维修工单闭环 | 新装任务按使用条件、备料、安装、测试、安检、完成、收款顺序流转;维修任务保存前中后证据、材料和签字;不合格、测试失败或收费差异均不能直接完成 |
| AC-18 | 配送、随瓶安检与回收 | 配送员完成到达校验、气瓶蓝牙/扫码、随瓶安检照片/视频、结论和收款确认后才能完成配送;空瓶回收同步更新气瓶、押金和库存状态,异常可追溯 |
| AC-19 | 服务人员资质与收入 | 角色注册后处于待审核;证照、培训或上班状态不满足时无法接单;完成任务后收入按结算规则进入可提现余额,提现和银行卡信息受审核与审计保护 |
## 3. 非功能验收
- 可用性:安全告警、设备控制、支付回调等关键链路定义 SLO 和降级方案;上线前完成故障演练。
- 性能:以目标设备数量、每设备上报频率、峰值下单量、消息量为基准压测;容量指标须在立项时量化。
- 安全:完成权限越权、支付回调伪造、设备身份伪造、文件上传、敏感信息泄漏和常见 Web/App 攻击测试。
- 可观测性:每个关键请求可用 `request_id` 串联;每个设备命令、告警和订单状态可定位日志、指标和事件。
- 可用性与无障碍:移动端具备弱网提示、重要操作反馈、可读的风险颜色与文字;后台关键表格可键盘操作。
## 4. 上线前决策清单
1. 安全规则、关阀/开阀责任、人工审批与 SLA 的业务签字。
2. IoT 厂商协议、设备证书、离线行为、回执语义和固件升级能力的联调确认。
3. 支付、电子合同、短信/推送、地图、客服等第三方的商户资质、费用、回调和故障方案。
4. 隐私政策、用户协议、数据留存、视频/定位处理、注销策略及安全事件证据的法务确认。
5. 订单履约、退款、分账、提现、对账、发票和税务口径的财务确认。
6. 各角色培训、客服话术、应急值班、告警升级通讯录和灰度/回滚预案。

34
docs/README.md Normal file
View File

@@ -0,0 +1,34 @@
# 物联网智能瓶阀控制系统 - 需求文档集
本目录依据原始需求附件的功能脑图整理,作为产品、设计、研发、测试和运营共同使用的基线。本文档集只描述需求与技术规划,不包含可执行的业务代码。
## 文档导航
| 文档 | 用途 |
| --- | --- |
| [01-项目总览与边界](01-项目总览与边界.md) | 目标、角色、系统边界、关键规则与术语 |
| [02-核心业务流程](02-核心业务流程.md) | 设备安全、交易履约、整改闭环等跨系统流程 |
| [03-用户端 App 需求](03-用户端App需求.md) | 业主/消费者 Flutter App 需求 |
| [04-服务端 App 需求](04-服务端App需求.md) | 安装维修、安检、配送人员共用 Flutter App |
| [05-平台总后台需求](05-平台总后台需求.md) | 平台全局治理、运营、财务、安全和审计 |
| [06-气站管理系统需求](06-气站管理系统需求.md) | 气站商品、订单、配送点、服务人员、用户、对账与经营管理 |
| [07-配送点管理系统需求](07-配送点管理系统需求.md) | 配送点、人员、库存、调度与配送运营 |
| [08-生产管理系统需求](08-生产管理系统需求.md) | 设备生产、批次、质检、入网与追溯 |
| [09-API 中心管理系统需求](09-API中心管理系统需求.md) | API 产品、应用接入、授权、流量、文档与审计 |
| [10-技术实现规划](10-技术实现规划.md) | Go、PostgreSQL、Flutter、Vue、React 等多端技术方案与目录规划 |
| [11-数据接口与安全](11-数据接口与安全.md) | 数据域、接口约定、物联网协议、安全及合规要求 |
| [12-验收与迭代规划](12-验收与迭代规划.md) | MVP 边界、验收标准、非功能要求与版本路线图 |
## 阅读与维护规则
- “应/必须”表示上线验收项;“建议”表示增强项;“可选”表示扩展能力。
- 需求变更应先更新本目录中的对应文档,并记录版本、变更人、变更原因和影响范围。
- 涉及阀门自动关闭、告警分级、支付、合同、提现、隐私信息的变更,须由产品、技术、安全/法务共同评审。
- 原附件只给出功能脑图,未明确的业务口径已在文档中标记为“待确认”或作为可配置规则提出,不应直接视为既定政策。
## 建议的需求评审顺序
1. 先确认 [项目总览与边界](01-项目总览与边界.md) 和 [核心业务流程](02-核心业务流程.md)。
2. 由各业务负责人确认两类 App 和五个 Web 系统的页面、权限、状态与异常处理。
3. 由研发确认 [技术实现规划](10-技术实现规划.md) 及 [数据接口与安全](11-数据接口与安全.md)。
4. 在开发前以 [验收与迭代规划](12-验收与迭代规划.md) 固化版本范围和验收口径。