缘起
对接的人管着一个二十几台车的车队。他给我看的不是需求文档,是一件事:司机问某辆车当天能不能用,调度要去问第三个人,钥匙在谁手上还得再问一轮。月底他把每辆车的油钱手工凑一遍,凑不平就整表重来。
他要的东西很具体:申请、审批、派车、出车收车,每一步都留个能翻回来的痕。
背景
一个车队的日常管理其实是六条并行的线:车辆本身的档案与证照,用车的请求与多级审批,谁在什么时间段占着哪台车,保养维修与年检保险的时间点,油钱和过路费这类按车归集的成本,以及违章和事故这种必须留档备查的例外。它们分散在不同人的记性和群消息里时,出问题只能事后追溯,而事后往往追不到。
方案
构建三端一体(PC Web + 移动端 H5 + Go 后端)的公车管理系统,覆盖七大业务模块:
- 基础信息:车辆档案一车一档(行驶证/保险单等附件归档)、部门员工、驾驶员档案、字典配置
- 用车调度:线上申请 → 多级审批(部门初审/车队复审/领导终审)→ 智能派车 → 出车/收车登记,行程全程可溯
- 车辆运维:保养按里程/时间自动提醒,维修分级审批归档,年检保险到期 30/15 天预警,日常巡检留痕
- 费用油耗:加油登记、百公里油耗自动核算(异常油耗预警)、费用台账审核对账
- 违章事故:违章登记与处理跟进、事故上报与理赔归档,全量留痕可审计
- 数据统计:用车/成本/运维风险多维报表与可视化看板,支持 Excel/PDF 导出
- 系统管理:用户-角色-权限三级 RBAC、消息通知、操作日志、数据备份
移动端支持申请用车、移动审批、收发车登记与现场拍照上传,摆脱电脑端限制。
技术架构
| 模块 | 技术选型 |
|---|---|
| PC 前端 | Vue3 + Element Plus + Pinia |
| 移动端 | Vue3 + Vant + Pinia |
| 后端 | Go + Gin + GORM |
| 数据库 | SQLite(开箱即用)/ MySQL(生产) |
| 鉴权 | JWT + RBAC 权限码两级中间件 |
| 工程 | Makefile 统一入口 + 架构护栏测试 + OpenSpec 规格流 |
采用 controller → service → model 三层分层与统一响应协议({code, message, data}),默认值 → YAML → 环境变量三层配置,一键打包为双击即用的可部署形态。
成果
把公车管理从「Excel + 微信群」升级为可审批、可追溯、可统计的合规闭环:派车冲突与重复派单由系统约束,年检保险脱保风险靠预警拦截,单车成本与油耗异常实时可视。系统以软件包形态交付落地(client: 商业项目),PC 管理端 + 移动端 H5 + 后端一键安装,零环境配置即可投入使用。
体验
系统已部署,PC 与移动端可分别体验:
- PC 端:bus.bennywen.xyz
- 移动端(推荐手机打开):bus.bennywen.xyz/m
