# 智慧停车管理系统 — 项目进度 > 更新日期: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 — 核心闭环(收费 + 打印 + 硬件对接) | 功能 | 后端 | 前端 | 说明 | |------|:--:|:--:|------| | 收费结算 | ❌ | ❌ | 出场计费后无收款流程:现金/扫码支付、免密支付 | | 小票打印 | ❌ | ❌ | 串口 ESC/POS 指令,58mm 热敏小票打印机 | | **道闸控制** | ⚠️ | ❌ | ~~继电器指令已实现(CloseRelay1/ReleaseRelay1),但进出场流程中被注释~~ | | **摄像头车牌识别** | ❌ | ❌ | RTSP 视频流抓拍 + OCR 车牌识别,`camera` 表已建 | | **LED 车位显示** | ❌ | ❌ | 入口剩余车位显示屏对接 | **道闸控制待实现内容**: | 组件 | 说明 | |------|------| | 进出场开闸 | `handleReportData()` 中 `CloseRelay1(2)` 当前已注释,需解除注释并调试 | | 手动开闸 | 前端操作页面点击开闸按钮,调用继电器 API | | 防砸车 | 地感线圈或红外对射检测车辆是否还在道闸下方 | | 超时自动落杆 | 开闸后 N 秒未检测到车辆通过,自动落杆 | **摄像头待实现内容**: | 组件 | 说明 | |------|------| | 硬件对接 | RTSP 视频流拉取或 SDK 回调(海康/大华/宇视等) | | 抓拍触发 | 车辆进入识别区 → 抓拍一张图片 | | OCR 识别 | 车牌识别算法或第三方云服务(百度/阿里 OCR) | | 业务触发 | 识别到车牌 → 自动调用 `VehicleEntry()`/`VehicleExit()` | | 图片留存 | `VehicleRecord` 已有 `EntryImage`/`ExitImage` 字段 | **小票打印机待实现内容**: | 组件 | 说明 | |------|------| | 串口通信 | 通过串口/USB 连接 58mm 热敏打印机 | | ESC/POS 指令 | 封装打印指令集:文字、条码、二维码、切纸 | | 小票模板 | 停车小票格式:车牌号、进场时间、出场时间、费用、收款方式 | | 打印触发 | 收费完成后自动打印,支持补打 | **LED 车位显示屏待实现内容**: | 组件 | 说明 | |------|------| | 硬件对接 | 串口/TCP 通信协议,常见型号(如 P10 户外屏控制卡) | | 余位计算 | 总车位 - 当前在场车辆数 = 剩余车位 | | 实时更新 | 车辆进出场时自动刷新 LED 显示 | ### P1 — 运营管理 | 功能 | 后端 | 前端 | 说明 | |------|:--:|:--:|------| | 交接班 | ❌ | ❌ | 换班统计:当班收费总额、现金实收、差异 | | 收入报表 | ❌ | ❌ | 按日/月/班次汇总收入 | | 异常报表 | ❌ | ⚠️ | 无牌车、手动抬杆、断网异常记录,前端空占位 | | 包月车管理 | ❌ | ❌ | 月卡/季卡/年卡办理、续费、到期提醒、收入报表 | **包月车管理待实现内容**: | 组件 | 说明 | |------|------| | 月卡类型 | 月卡/季卡/年卡,不同价格 | | 办理页面 | 选车辆、选月卡类型、付月费、生成月卡记录 | | 续费页面 | 到期提醒列表 + 一键续费 | | 通行控制 | 月卡有效期内自动加入白名单(通行复用 shortlist 逻辑) | | 到期处理 | 到期自动从白名单移除,可设宽限期 | | 月卡收入统计 | 按月/年统计月卡销售收入 | > 说明:当前包月车的通行逻辑可以用 `shortlist`(白名单 + `ExpirationTime`)变通实现,但缺少管理端(办理/续费/统计)。 ### P0.5 — 手动进出场页面 | 功能 | 后端 | 前端 | 说明 | |------|:--:|:--:|------| | 手动进出场操作页 | ✅ | ❌ | 后端 API 已有,缺前端操作页面 | ### 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 系统表 | ✅ | ## 下一步建议 1. **道闸控制** (P0) — 继电器指令已有,解除注释 + 调试即可,半天 2. **手动进出场操作页面** (P0.5) — 后端 API 已就绪,只需前端页面,半天 3. **收费结算模块** (P0) — 闭环核心,配合小票打印 4. **小票打印** (P0) — ESC/POS 串口指令封装 + 小票模板 5. **摄像头车牌识别** (P0) — 第三种进出场触发方式(RTSP + OCR) 6. **LED 车位显示** (P0) — 入口剩余车位屏对接 7. **包月车管理** (P1) — 月卡办理/续费/到期处理 8. **交接班 + 收入报表** (P1) — 运营必需 9. **监控大屏** (P2) — 锦上添花