# 智慧停车管理系统 — 项目进度

> 更新日期：2026-07-24

## 技术栈

| 层级 | 技术 |
|------|------|
| 桌面框架 | Wails v2.13（WebView2） |
| 后端 | Go 1.25 + Gin + GORM + Casbin v3 + JWT |
| 前端 | Vue 3 + Vite 4 + Element Plus + Pinia |
| 数据库 | SQLite（`%APPDATA%/smart-parking/`） |

## 整体进度

| 模块 | 后端 | 前端 | 状态 |
|------|:--:|:--:|:----:|
| 用户管理 | ✅ | ✅ | 完成 |
| 角色权限 | ✅ | ✅ | Casbin RBAC，动态菜单 |
| 菜单管理 | ✅ | ✅ | - |
| API 管理 | ✅ | ✅ | - |
| 数据字典 | ✅ | ✅ | - |
| 操作日志 | ✅ | ✅ | OperationRecord中间件已全局启用 |
| **异常日志** | ❌ | ❌ | panic recovery + error log to file |
| 停车场管理 | ✅ | ✅ | 含 /parking 前缀对齐 |
| 收费岗亭 | ✅ | ✅ | - |
| 通道管理 | ✅ | ✅ | 方向/临停开关 |
| UHF 设备 | ✅ | ✅ | TCP/串口连接/启停 |
| 车辆信息 | ✅ | ✅ | CRUD |
| 车辆类型 | ✅ | ✅ | 含 is_system 标记 |
| 车主管理 | ✅ | ✅ | 含 VIP |
| 收费配置 | ✅ | ✅ | 起步价/计费单位/每日封顶/VIP折扣 |
| 黑白名单 | ✅ | ✅ | 进出场三入口全覆盖 |
| 车辆进场 | ✅ | ✅ | RFID 自动 + 手动 |
| 车辆出场 | ✅ | ✅ | 计费算法完整 |
| 进出记录 | ✅ | ✅ | 查询 |
| 道闸控制 | ✅ | ✅ | RFID识别→继电器开闸 |
| 手动进出场 | ✅ | ✅ | entryExit.vue，双 Tab 页面 |
| 收费结算 | ✅ | ✅ | 现金+找零/免密，payment_record |
| **收费记录查询** | ✅ | ✅ | 按车牌/支付方式/日期/停车场筛选 |
| **包月车管理** | ✅ | ✅ | 月/季/年卡，办卡=白名单 |
| **监控仪表盘** | ✅ | ✅ | 车位/在场/收入/进出+设备状态 |
| 摄像头 | ⚠️ | ❌ | DAO 有定义，无 API/页面 |
| 个人中心 | ✅ | ✅ | - |
| 登录页 | ✅ | ✅ | RSA 加密 + 验证码 |
| **数字票** | ✅ | ❌ | 5状态机+ticket_no二维码+事件日志 |
| **在场车辆统计** | ✅ | ✅ | 停车场/车牌筛选+详情卡片 |
| **exe混淆** | ❌ | ❌ | garble 编译混淆，防反编译 |

## 核心业务流完成度

```
1. 系统设置 ──────── 停车场→岗亭→通道→设备  ✅ 100%
2. 收费规则配置 ──── 按车型/免费时长/VIP     ✅ 100%
3. 名单管理 ──────── 白名单/黑名单           ✅ 100%
4. 车辆进场 ──────── RFID识别→查单→开闸     ✅ 100%
5. 车辆出场 ──────── 识别→计费→收费→开闸    ✅ 100%
6. 收费结算 ──────── 现金+找零/免密          ✅ 100%
7. 手动进出场页面 ─── 车牌/RFID输入→进出场   ✅ 100%
8. 收费记录查询 ──── 筛选/汇总               ✅ 100%
9. 包月车管理 ───── 月/季/年卡→白名单       ✅ 100%
10. 监控仪表盘 ───── 车位/收入/设备状态      ✅ 100%
11. 小票打印 ─────── ESC/POS 串口打印        ❌ 0%
12. 摄像头识别 ───── RTSP抓拍→OCR→触发       ❌ 0%
13. LED车位屏 ────── 余位实时显示             ❌ 0%
14. 交接班对账 ───── 当班统计/实时收款/差异   ✅ 100%
15. 收入报表 ─────── 按日+停车场汇总          ✅ 100%
16. 在场车辆统计 ──── 停车场/车牌筛选+详情    ✅ 100%
17. 数字票 ──────── 5状态机+ticket_no+日志   ✅ 100%
18. 操作日志 ──────── OperationRecord中间件   ✅ 100%
19. 异常日志 ──────── panic recovery+文件    ❌ 0%
20. exe混淆 ──────── garble编译              ❌ 0%
```

## 车辆进出场触发方式

| 触发方式 | 状态 | 说明 |
|---------|:--:|------|
| UHF RFID 自动识别 | ✅ | 读标签→查车辆→进出场+开闸，PassageService 统一入口 |
| 前端手动录入 | ✅ | entryExit.vue 进出场操作页面，含收费结算 |
| 数字票统一抽象 | ✅ | 所有进场方式统一创建 digital_ticket，5状态机驱动 |
| 摄像头车牌识别 | ❌ | `camera` 表已建，无拍照/OCR/触发逻辑 |

```
车辆靠近
  ├─ UHF 读卡器 → RFID 标签 → PassageService → VehicleEntry/Exit ✅
  ├─ 人工       → 手动录入车牌 → VehicleEntry/Exit ✅
  ├─ 摄像头     → 抓拍 → OCR 车牌 → VehicleEntry/Exit ❌
              ↓
         三者统一创建 digital_ticket（数字票状态机）
```

**摄像头识别待实现内容**：

| 组件 | 说明 |
|------|------|
| 硬件对接 | RTSP 视频流抓拍或 SDK 回调 |
| OCR 识别 | 车牌识别算法或第三方云服务 |
| 业务触发 | 识别到车牌 → 自动调用 `VehicleEntry()`/`VehicleExit()` |
| 图片留存 | `VehicleRecord` 已有 `EntryImage`/`ExitImage` 字段 |

## 待开发模块

### P0-1 ─ 道闸控制 ✅

> 已完成：继电器 `CloseRelay1(2)` 已解除注释，`OpenGate()` 公开方法。进场/出场自动开闸。

### P0-2 ─ 手动进出场页面 ✅

> 已完成：`entryExit.vue` 支持车牌/RFID 输入、车辆查询、进场/出场双 Tab。含多语言支持。

### P0-3 ─ 收费结算 ✅

> 已完成：`payment_record` 表、`PaymentService`、现金收款+找零、免密放行。预留 POS/扫码扩展。

### P0-4 ─ 小票打印

> **收完钱要出票**：配合收费结算，收费完成后自动打印小票给车主。

| 功能 | 后端 | 前端 | 说明 |
|------|:--:|:--:|------|
| 小票打印 | ❌ | ❌ | 串口 ESC/POS 指令，58mm 热敏小票打印机 |

**待实现内容**：

| 组件 | 说明 |
|------|------|
| 串口通信 | 通过串口/USB 连接 58mm 热敏打印机 |
| ESC/POS 指令 | 封装打印指令集：文字、条码、二维码、切纸 |
| 小票模板 | 停车小票格式：车牌号、进场时间、出场时间、费用、收款方式 |
| 打印触发 | 收费完成后自动打印，支持补打 |

### P0-5 ─ 摄像头车牌识别

> **双重校验防作弊**：RFID 标签可能被拆换，车牌识别作为第二道校验。也是第三种进出场触发方式（无标签车辆）。

| 功能 | 后端 | 前端 | 说明 |
|------|:--:|:--:|------|
| 摄像头车牌识别 | ❌ | ❌ | RTSP 视频流抓拍 + OCR 车牌识别，`camera` 表已建 |

**待实现内容**：

| 组件 | 说明 |
|------|------|
| 硬件对接 | RTSP 视频流拉取或 SDK 回调（海康/大华/宇视等） |
| 抓拍触发 | 车辆进入识别区 → 抓拍一张图片 |
| OCR 识别 | 车牌识别算法或第三方云服务（百度/阿里 OCR） |
| 业务触发 | 识别到车牌 → 自动调用 `VehicleEntry()`/`VehicleExit()` |
| 图片留存 | `VehicleRecord` 已有 `EntryImage`/`ExitImage` 字段 |

### P1 — 运营管理

| 功能 | 后端 | 前端 | 说明 |
|------|:--:|:--:|------|
| 交接班 | ✅ | ✅ | 接班/交班/当班收款/差异计算 |
| 收入报表 | ✅ | ✅ | 按日+停车场汇总，底部合计行 |
| 异常报表 | ❌ | ⚠️ | 无牌车、手动抬杆、断网异常记录，前端空占位 |
| LED 车位显示 | ❌ | ❌ | 入口剩余车位显示屏对接 |

### P2 — 结算终端

| 功能 | 后端 | 前端 | 说明 |
|------|:--:|:--:|------|
| **出口 POS 机** | ❌ | ❌ | 临时车出口刷卡支付（银行卡/会员卡），调用支付网关 |
| **中央缴费机** | ❌ | ❌ | 停车场内自助缴费终端：车牌查询 → 扫码/现金支付 → 出口自动放行 |

### P2 — 监控与边缘端

| 功能 | 后端 | 前端 | 说明 |
|------|:--:|:--:|------|
| 实时监控大屏 | ✅ | ✅ | 暗色控制室风格，LED读表字体 |
| 在线车辆统计 | ✅ | ✅ | 停车场/车牌筛选，卡片网格+详情 |
| RK3568 边缘端 | ❌ | ❌ | edge/ 通信层（TCP协议 + 事件总线） |

## 前端页面清单（37 页）

| 位置 | 页面 | 功能 | 状态 |
|------|------|------|:--:|
| `login/` | index.vue | 登录 | ✅ |
| `dashboard/` | index.vue + charts + table | 仪表盘 | ✅ |
| `parking/` | parkingInfo/index.vue | 停车场信息（左列表右Tab） | ✅ |
| | parkingInfo/booth.vue | 岗亭管理 | ✅ |
| | parkingInfo/channel.vue | 通道管理 | ✅ |
| | parkingInfo/device.vue | UHF设备管理 | ✅ |
| | carInfo.vue | 车辆信息 | ✅ |
| | carOwner.vue | 车主管理 | ✅ |
| | pricing.vue | 收费配置 | ✅ |
| | roster.vue | 黑白名单 | ✅ |
| `report/` | enter.vue | 进出记录 | ✅ |
| | sheet.vue | 异常报表 | ⚠️ 空 |
| `statistics/` | vehicle.vue | 在线车辆统计 | ✅ |
| `superAdmin/` | user/user.vue | 用户管理 | ✅ |
| | authority/authority.vue | 角色管理 | ✅ |
| | menu/menu.vue | 菜单管理 | ✅ |
| | api/api.vue | API管理 | ✅ |
| | dictionary/*.vue | 字典管理 | ✅ |
| | operation/*.vue | 操作日志 | ✅ |
| `person/` | person.vue | 个人中心 | ✅ |
| `layout/` | 9 个组件 | 布局框架 | ✅ |
| `error/` | 2 个组件 | 错误页 | ✅ |

## 后端 API（110+ 接口）

| 模块 | 接口数 | 状态 |
|------|:-----:|:----:|
| Base (login/captcha) | 3 | ✅ |
| User | 11 | ✅ |
| Menu | 9 | ✅ |
| API | 9 | ✅ |
| Authority | 6 | ✅ |
| Casbin | 2 | ✅ |
| Dictionary | 10 | ✅ |
| OperationRecord | 5 | ✅ |
| FileUpload | 8 | ✅ |
| Email | 2 | ✅ |
| Parking Lot | 7 | ✅ |
| Booth | 7 | ✅ |
| Channel | 7 | ✅ |
| Device (UHF) | 8 | ✅ |
| Vehicle | 8 | ✅ |
| Vehicle Type | 6 | ✅ |
| Vehicle Record | 3 | ✅ |
| Fee Config | 5 | ✅ |
| Owner | 6 | ✅ |
| Shortlist | 5 | ✅ |

## 数据库（24 张业务表）

| 表 | 说明 | 状态 |
|------|------|:--:|
| parking_lot | 停车场 | ✅ |
| booth | 收费岗亭 | ✅ |
| channel | 通道 | ✅ |
| uhf_reader | UHF读卡器 | ✅ |
| camera | 摄像头 | ⚠️ 表有，功能无 |
| vehicle | 车辆 | ✅ |
| vehicle_type | 车辆类型 | ✅ |
| vehicle_record | 进出记录 | ✅ |
| fee_config | 收费标准 | ✅ |
| owner | 车主 | ✅ |
| shortlist | 黑白名单 | ✅ |
| payment_record | 支付记录 | ✅ |
| monthly_card | 包月卡 | ✅ |
| digital_ticket | 数字票 | ✅ |
| sys_* (13张) | GVA 系统表 | ✅ |

## 下一步建议

| 优先级 | 功能 | 预估工时 | 状态 |
|:--:|------|:--:|:--:|
| ~~P0-1~~ | ~~道闸控制~~ | - | ✅ |
| ~~P0-2~~ | ~~手动进出场页面~~ | - | ✅ |
| ~~P0-3~~ | ~~收费结算~~ | - | ✅ |
| ~~P0-3~~ | ~~收费结算~~ | - | ✅ |
| ~~P1~~ | ~~包月车管理~~ | - | ✅ |
| ~~P2~~ | ~~监控大屏~~ | - | ✅ |
| ~~--~~ | ~~在场车辆统计~~ | - | ✅ |
| ~~--~~ | ~~数字票~~ | - | ✅ |
| **P0-4** | **小票打印** | 1-2天 | ESC/POS 串口指令封装 + 小票模板 |
| **P0-5** | **摄像头车牌识别** | 3-5天 | RTSP+OCR，RFID+车牌双重校验 |
| ~~P1~~ | ~~交接班 + 收入报表~~ | - | ✅ |
| P1 | LED 车位显示 | 1天 | 入口剩余车位屏 |
| P1 | 异常日志 | 半天 | panic recovery + error log to file |
| P1 | exe混淆 | 半天 | garble 编译混淆 |
| P2 | 出口 POS 机 | 3-5天 | 串口/TCP通信+支付网关对接 |
| P2 | 中央缴费机 | 5-7天 | 自助缴费终端+扫码支付+出口联动放行 |
