# 智慧停车管理系统 — 项目进度 > 更新日期:2026-07-14 ## 技术栈 | 层级 | 技术 | |------|------| | 桌面框架 | 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 管理 | ✅ | ✅ | - | | 数据字典 | ✅ | ✅ | - | | 操作日志 | ✅ | ✅ | - | | 停车场管理 | ✅ | ✅ | 含 /parking 前缀对齐 | | 收费岗亭 | ✅ | ✅ | - | | 通道管理 | ✅ | ✅ | 方向/临停开关 | | UHF 设备 | ✅ | ✅ | TCP/串口连接/启停 | | 车辆信息 | ✅ | ✅ | CRUD | | 车辆类型 | ✅ | ✅ | - | | 车主管理 | ✅ | ✅ | 含 VIP | | 收费配置 | ✅ | ✅ | 起步价/计费单位/每日封顶/VIP折扣 | | 黑白名单 | ✅ | ✅ | 白名单放行/黑名单禁止 | | 车辆进场 | ✅ | ✅ | RFID 自动 + 手动 | | 车辆出场 | ✅ | ✅ | 计费算法完整 | | 进出记录 | ✅ | ✅ | 查询 | | 摄像头 | ⚠️ | ❌ | DAO 有定义,无 API/页面 | | 仪表盘 | ✅ | ✅ | ECharts 图表 | | 个人中心 | ✅ | ✅ | - | | 登录页 | ✅ | ✅ | RSA 加密 + 验证码 | ## 核心业务流完成度 ``` 1. 系统设置 ──────── 停车场→岗亭→通道→设备 ✅ 100% 2. 收费规则配置 ──── 按车型/免费时长/VIP ✅ 100% 3. 名单管理 ──────── 白名单/黑名单 ✅ 100% 4. 车辆进场 ──────── RFID识别→查单→开闸 ⚠️ 80% (道闸继电器注释未启用) 5. 车辆出场 ──────── 识别→计费→开闸 ⚠️ 70% (缺收费+道闸继电器) 6. 收费结算 ──────── 现金/扫码/免密 ❌ 0% 7. 小票打印 ──────── ESC/POS 串口打印 ❌ 0% 8. 摄像头识别 ────── RTSP抓拍→OCR→触发 ❌ 0% 9. LED车位屏 ────── 余位实时显示 ❌ 0% 10. 交接班对账 ───── 当班统计/现金核销 ❌ 0% 11. 报表查询 ─────── 进出记录 ⚠️ 50% (缺收入/异常) 12. 实时监控 ─────── 车位/设备/在线车 ❌ 0% ``` ## 车辆进出场触发方式 | 触发方式 | 状态 | 说明 | |---------|:--:|------| | UHF RFID 自动识别 | ⚠️ | 读标签→查车辆→进出场逻辑完整,但**道闸继电器调用被注释**,识别后不会实际开闸 | | 前端手动录入 | ⚠️ | 后端 API 已实现,**前端无操作页面** | | 摄像头车牌识别 | ❌ | `camera` 表已建,无拍照/OCR/触发逻辑 | ``` 车辆靠近 ├─ UHF 读卡器 → RFID 标签 → 查车辆 → VehicleEntry/Exit ✅ ├─ 摄像头 → 抓拍 → OCR 车牌 → 查车辆 → VehicleEntry/Exit ❌ └─ 人工 → 手动录入车牌 → 查车辆 → VehicleEntry/Exit ⚠️(缺前端页面) ↓ 三者互相校验 ``` **人工手动录入待实现内容**: | 组件 | 说明 | |------|------| | 进出场操作页面 | 输入车牌号/RFID、选停车场/车位、拍照上传、确认进出场 | | 关联 UHF 扫描 | 页面可接收 UHF 读卡器实时扫描结果,自动填入车牌 | **摄像头识别待实现内容**: | 组件 | 说明 | |------|------| | 硬件对接 | RTSP 视频流抓拍或 SDK 回调 | | OCR 识别 | 车牌识别算法或第三方云服务 | | 业务触发 | 识别到车牌 → 自动调用 `VehicleEntry()`/`VehicleExit()` | | 图片留存 | `VehicleRecord` 已有 `EntryImage`/`ExitImage` 字段 | ## 待开发模块 ### P0-1 ─ 道闸控制(最高优先级) > **为什么最优先**:继电器代码已写完(`CloseRelay1`/`ReleaseRelay1`),进出场流程中仅被注释掉。不启用道闸,RFID 读到标签也抬不了杆,整个物理链路是断的。解除注释 + 调试即可打通。 | 功能 | 后端 | 前端 | 说明 | |------|:--:|:--:|------| | 道闸控制 | ⚠️ | ❌ | 继电器指令已实现,`handleReportData()` 中 `CloseRelay1(2)` 被注释 | **待实现内容**: | 组件 | 说明 | |------|------| | 进出场开闸 | `handleReportData()` 中 `CloseRelay1(2)` 解除注释并调试 | | 手动开闸 | 前端操作页面点击开闸按钮,调用继电器 API | | 防砸车 | 地感线圈或红外对射检测车辆是否还在道闸下方 | | 超时自动落杆 | 开闸后 N 秒未检测到车辆通过,自动落杆 | ### P0-2 ─ 手动进出场页面 > **为什么排第二**:UHF RFID 不是 100% 可靠(标签损坏、无标签车辆),必须有手动兜底。后端 API 已就绪,只缺前端页面。 | 功能 | 后端 | 前端 | 说明 | |------|:--:|:--:|------| | 手动进出场操作页 | ✅ | ❌ | `POST /vehicle/entry`、`POST /vehicle/exit` 已实现 | **待实现内容**: | 组件 | 说明 | |------|------| | 进出场操作页面 | 输入车牌号/RFID、选停车场/车位、拍照上传、确认进出场 | | 关联 UHF 扫描 | 页面可接收 UHF 读卡器实时扫描结果,自动填入车牌 | ### P0-3 ─ 收费结算 > **为什么排第三**:道闸能抬了、手动兜底有了,下一步就是收钱。计费算法已有,但没有收款流程就无法完成经营闭环。 | 功能 | 后端 | 前端 | 说明 | |------|:--:|:--:|------| | 收费结算 | ❌ | ❌ | 出场计费后无收款流程:现金/扫码支付、免密支付 | **待实现内容**: | 组件 | 说明 | |------|------| | 现金收款 | 收费员输入实收金额,自动计算找零 | | 扫码支付 | 微信/支付宝扫码支付(需对接支付网关或使用静态码) | | 免密支付 | 包月车/VIP 车出场自动扣费,无需人工干预 | | 收费记录 | 每笔收费记录:金额、方式、收费员、时间 | ### 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 车位显示 | ❌ | ❌ | 入口剩余车位显示屏对接(不影响车辆进出,可后续补充) | **包月车管理待实现内容**: | 组件 | 说明 | |------|------| | 月卡类型 | 月卡/季卡/年卡,不同价格 | | 办理页面 | 选车辆、选月卡类型、付月费、生成月卡记录 | | 续费页面 | 到期提醒列表 + 一键续费 | | 通行控制 | 月卡有效期内自动加入白名单(通行复用 shortlist 逻辑) | | 到期处理 | 到期自动从白名单移除,可设宽限期 | | 月卡收入统计 | 按月/年统计月卡销售收入 | > 说明:当前包月车的通行逻辑可以用 `shortlist`(白名单 + `ExpirationTime`)变通实现,但缺少管理端(办理/续费/统计)。 ### P2 — 监控与边缘端 | 功能 | 后端 | 前端 | 说明 | |------|:--:|:--:|------| | 实时监控大屏 | ❌ | ❌ | 车位余量、在线车辆、设备状态 | | 在线车辆统计 | ❌ | ⚠️ | 前端空占位 | | 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 | 黑白名单 | ✅ | | sys_* (13张) | GVA 系统表 | ✅ | ## 下一步建议 | 优先级 | 功能 | 预估工时 | 理由 | |:--:|------|:--:|------| | **P0-1** | 道闸控制 | 半天 | 继电器代码已有,解除注释+调试即打通物理链路 | | **P0-2** | 手动进出场页面 | 半天 | 后端 API 已就绪,只缺前端页面,UHF 不可靠时兜底 | | **P0-3** | 收费结算 | 2-3天 | 经营闭环核心,现金+扫码+免密收款 | | **P0-4** | 小票打印 | 1-2天 | ESC/POS 串口指令封装 + 小票模板 | | **P0-5** | 摄像头车牌识别 | 3-5天 | RTSP+OCR,RFID+车牌双重校验 | | P1 | 包月车管理 | 2天 | 月卡办理/续费/到期处理 | | P1 | 交接班 + 收入报表 | 2天 | 运营必需 | | P1 | LED 车位显示 | 1天 | 不影响车辆进出,可后续补充 | | P2 | 监控大屏 | 2天 | 锦上添花 |