开源仓库
YunParking是一个城市级的智慧停车项目,开源功能主要包括路内停车,路外室内停车,共享车位,车位预约,室内导航,反向巡车,收费规则,支付聚合,设备管理,巡查PAD执法、车位推荐查找、会员充值、等级管理、月卡充值、月卡支付、余额支付、区层管理、车主管理、车场管理、第三方云存储、短信...开源功能及完整度非常高,就不一一罗列了,最下面也有更详细的一些业务功能;所有东西都在源码里,现开源出来供大家学习参考;
https://github.com/yuncitys/YunParking
开放文档
首先我们在技术上主要框架:Spring Cloud、Spring Cloud Alibaba、Spring Boot、Spring Cloud Stream、MyBatis-Plus、Alibaba Druid、Apache Dubbo、Hutool、Lombok等主流技术;
系统主要特征如下:
更适合智慧停车领域的设计
专为城市级停车设计,满足ToG+ToB+ToC不同角色需求。整个服务可SaaS多租户独立运营,采用主流SpringCloud微服务模块化设计,更适合未来智慧城市中各种智慧领域场景的扩展集成,从底层YunIOT设备物联统一接入开始布局,到上层智慧子系统:YunParking路内外智慧停车、YunCharge智慧充电的搭建,到用户端消费统一结算系统YunPay支付分账结算金融平台形成整个智慧领域闭环。
停充一体化:路内停车+路外停车+新能源充电
在一个移动应用上,可完成路内、外停车充电站查询、停充、缴费等业务。在一个平台上,可实现机构、商户、账户、收费规则等业务项的配置,车场、车位、站桩设备等资源的管理,日常的运营、财务、用户、运维等数据的报表查询,真正实现管理运营一张网,数据更聚合。
基本集成市面所有主流停充设备解决方案
针对路侧停车收费取证运营模式支持纯人工、纯终端、人工+终端结合多种收费模式。覆盖地磁检测器、中高位视频桩、路牙机、巡检车、诱导屏、PDA手持打票收费终端;道闸场可适配新旧车场接入,支持臻识,华夏,芊熠相机,百胜、信路通等主流品牌;充电桩与停车场打通,可接入云快充协议的市面上所有充电桩。
系统催缴收费综合可达85%以上
对各城市运营单位中停车收费难问题,得益于全国大量落地运营案例,深入了解一线运营中的各种车主逃费、违停,运营投诉,巡查人员管理低效等问题。系统可通过扫小票的过程全自动完善车主车辆身份信息,停车全过程行为记录,完备运营投诉的证据链补充;对巡查人员位置,工作过程,工作结果全方面考核管理。全系统下跨车场联动催缴欠费,路侧欠费可在道闸场进出口拦截追缴。配合灵活的营销功能,设定参与条件,进一步激励车主绑定注册、预存清欠,并提供多种缴费扣费方式。
停车业务容错能力(终端设备、停车行为、订单状态、巡查人员)
终端设备
- 设备低电,弱网,低置信度预警,消息推送到路段管理人员;
- 可针对易错误识别的车牌标记,在平台录入车牌样本库,并开启系统车牌纠错算法可纠错车牌增强终端算法准确率;
- 道闸场断电:闸门启动常开模式,避免堵车;
- 道闸场断网:备用4G网接管、或本地蓝牙控制抬杆,或本地脱机模式接管,离线期间数据异步回传同步到云;
- 道闸场断云:如云服务部分服务异常,可使用PDA终端接管,人工创单(如果云全断,将进入到本地脱机模式,云恢复正常后离线期间数据异步回传同步到云);
- 因终端误触发的重复订单过滤,频繁触发订单合并;
停车行为
- 防伪车牌、返场停车、跟车进出场、无出、入场记录;
订单状态
- 异常订单:同一车辆在多个泊位存在进行中订单或是相同的泊位发现有多个进行中订单,系统可自动识别处理合并,并标识异常;
异常离场订单可通过选择车场(车场可单选、多选、全选)来展示以下信息:车牌号码、入场时间、入场通道、进场照片、出场时间、出场通道、出场照片、停车时长、车类型、应收金额、结算金额、异常状态(异常状态展示具体异常原因),对所有车辆进出情况进行分析,针对不完整订单和有异常的车辆进行标注分类,可帮组运营人员快速处理和解决问题。
订单具备以下异常状态分类判断: - 无在场记录:此类情况是车辆出口识别到,但未匹配到在场订单;
- 未结算离场:此类情况是车再次进入车场时,场内还有未结算完订单存在,平台分类处理,原订单自动结算;
- 离场逃费:此类情况是车辆有在场订单,在出场时已扫到车牌(此类订单平台自行判断并记录保存,待下次车辆入场时后台自动核对),但未支付出场,下次入场时上一个待支付订单需要准确计算出该车时长及金额,并把完整信息展现在逃费报表里;
- 疑似返场:此类情况是车辆有在场订单,出口主相机识别到了车牌,但确认相机未识别到,怀疑车辆在进场后未产生费用或费用较低时,有意到出口识别车牌并支付结算订单,随后又返回场内的操作;
- 无费用跟车:没拍到车头但是拍到了车尾,而且没有费用的,算跟车冲杆,有费用的算离场逃费;
- 异常订单处理状态:未处理、已处理、已忽略、误识别、黑名单、线下补缴、线上补缴、置为逃单、补录入场时间、补录出场时间;
- 异常订单处理方法支持:忽略、误识别、黑名单、添加出场时间并处理;
巡查人员
- 巡查轨迹路线,定时上报位置情况,打卡签到,工单任务处理,PDA操作记录日志、催收情况考勤日志管理;
为政府城建部门、停车运营单位提供多维数据分析与功能支撑
政府城建部门
- 地图交通大数据+车流资源分析+交通态势,综合分析展现全域静态交通情况,为城建部门提供城市车位规划的数据支撑,交通诱导疏堵治理做到全城停车监管。
- 静态交通大数据:车场地图分布,总车场、侧边车场数统计、封闭车场统计、总车位、侧边车位、封闭车位、地磁、手持机、识别监控设备数、认证车辆、巡查员、注册用户数量;车辆车牌分析占比、24小时停车进离场趋势、当日总停车车流次数、实时天气情况、车场饱和度、当天周转次数、泊位平均收入、设备在线率情况、车主停车时长分布分析。
停车运营单位
- 包括车位利用率、区域停车分布、经营收入增长趋势、巡查人员轨迹考勤、用户行为支付习惯等,为运营方提供经营预测和决策依据。可视化提供内容丰富、直观易用的角色化视窗,运营方可快速方便的在平台上实现设施运维、监控、人员调度等基础管理,配置收费标准等,极大地提升经营效能。
- 营收大数据:当日实收、路侧收入、封闭收入、历史总收、路侧停车营收情况、封闭车场营收情况、应收金额、实收金额、有牌订单数、欠费金额、今日车流量。支付方式占比、缴费习惯统计、当日周转次数、停车场日、月、年收入排行、巡查员催缴日、月排行榜;按日统计月卡、余额、停车缴费实收情况;
- 用户统计:注册用户数、月卡购买用户数、充值用户数、在线支付用户数、关注公众号用户数;
卓越的运营能力与停充体验
- 停车云后台+车主小程序和公众号+巡查管理APP三个端组合提供全方位的停充服务;
- 丰富的运营营销功能:包月包期、余额充值、优惠券、商家异业联盟。可照顾到特殊群体残疾人、退伍军人、其它特殊人群白名单;
- 灵活的收费规则:可自定收费日历模板,满足在地方特色节日中匹配不同日历模板;收费计算器功能:通过输入的车牌、车型、车牌颜色、订单时间、停车点信息进行模拟计费;计费方式包含:定额按次、时长计费、阶梯计费、先阶梯后时长计费、分钟收费;可配置连续24小时收费和自然日24小时不同的收费日期类型,最高和最低收费,不同的日期收费,不同车型、车牌颜色在不同的时间点采用不同的收费规则,设定生效时间生效;首次免费、首次免费时长、周期内免费停放时间。支持新能源车和蓝牌车不同减免,可设置小中大不同车型费用上限。
- 打通停车场与充电站之间数据互通与费率收缴联动,针对新能源充电车设置不同时段的尖、峰、平、谷服务费与电费,超时占位收费。
- 系统提供每天账务对账数据,可细到每一笔业务订单;在涉及多方分账主体时无需人工对账,系统自动与三方渠道定时拉取账单对账,并生成对账结果,发现长短账,单边漏单数据,部分系统漏单数据可一键修复补齐账单。
- 车主查找车位、充电桩、导航、移动支付等。提升市民出行的可预测性、车位共享的增值性、通行的高效性、支付的便捷性上获得较好的幸福感,有效提升出行效率;
- 巡查管理APP:支持原生安卓版本和Uniapp不同语言版本,管理人员直接通过APP管理路侧泊位的占用实时状态,打印小票,支持自定小票内容模板。也可在手机直接监控路外道闸场车道现场视频画面,和开关放行车辆。
多租户SaaS模式运营
- 支持SaaS模式,可实现不同运营主体独立停车运营与结算,搭建自己的SaaS品牌,再小的物业都可拥有属于自己的停车应用。每个主体租户实现库与库之间的数据隔离,信息更安全,也更好的满足高并发、大数据处理业务场景。
领先的技术架构与可持续的产品迭代升级能力
- 选用Java为后台开发语言,SpringCloud微服务设计,前端Vue+UniApp,原生安卓;主流整体架构清晰、稳定技术先进、源代码书写规范、经典技术会的人多、易于维护、易于扩展、安全稳定。
- 停车运营的转型升级,不但需要丰富的智慧停车行业业务的理解,更在于以信息技术创新求发展,向人力成本管控要效益,引入新技术、新业态和新工具手段,提高停车服务的专业性、增加产品和服务附加值,10年磨剑,我们原班团队2015年就已经在停车行业。
场景落地
基于地磁+PDA采集的泊车解决方案
以地磁为基础的泊车解决方案,针对车辆的识别以车辆对地球磁场的扰动为触发条件,雷达检测做为辅助,通过NB-IOT网络上传数据,后台对数据进行统一存储、处理。后台中心统一与前端PDA设备及相关系统进行数据交互,现场配收费员辅助录入车牌,做到应收尽收,提高经济效益。
基于地磁+巡查车采集的泊车解决方案
地磁+巡查车的模式,是地磁+PDA模式的升级,利用巡查车代替人工手持收费终端PDA巡查。巡查车主要针对平行停车、斜停场景的违章停车、付费异常情形抓拍并识别车牌号、泊位号。提供三张图片(车尾、全景、车头)以及过程录像取证。可以提高效率,减少争议。
基于地感采集的泊车解决方案
地感是LORA地磁+地感线圈的结合体,通过地感线圈磁通量进行检测,不受地铁、轻轨磁场分布及过路大型货车等场景影响,可获得更好的检测结果。准确率高。
基于车位锁采集的泊车解决方案
车位锁是基于物联网的以车底盘为主的智能型产品,适用于无人值守场地停车位自助缴费停车场,可实现微信、支付宝自助缴费和预定车位,通过云平台还可以实现车位共享,自动锁车和放行。可解决停车位被占用的问题,达到提升周转率的效果。
基于高位视频采集的泊车解决方案
基于泊位号的智能视频设备进行车牌识别,单杆可管理6~8个车位距离,同时后台二次算法进行辅助车牌识别,投入成本少,施工方法采用L型立杆,建设完成高度距离地面4.5-6米左右,不易遭到人为破坏,从识别角度来看,杆位不容易人为遮挡,综合识别输出率可以达到95%,不需要前方人员盯守从而减少运营维护成本。
基于视频桩采集的泊车解决方案
依托视频智能识别和移动互联网技术,智能前端检测器自动获取停车泊位的停车信息,自动识别车牌号码传输到中心系统,系统自动计费,驾驶员利用手机通过微信、APP等方式自动缴费,实现路内公共泊位的无人值守。
充电桩
交流直流桩,整合停车场,可设置独立充电站运营,也可联合进出车场相机,免费停车,优惠设置充电收费规则。
道闸相机、臻识、华夏、海康、大华、百胜、信路通
主流行业内相机厂家接入,远程开关闸、远程视频管理。
整体架构
平台架构
主体框架:Spring Cloud、Spring Cloud Alibaba、Spring Boot、Spring Cloud Stream、MyBatis-Plus、Alibaba Druid、Apache Dubbo、Hutool、Lombok等主流技术;
前后端分离:采用主流开发模式-前后端分离框架设计,代码风格精简,面向后端开发工程师,易于理解和上手;
统一接口管理:集成Swagger/Knife4j,可自动生成Api文档;
数据库兼容:支持 MySQL、SQLServer、Oracle、PostgreSQL等主流数据库,支持达梦、人大金仓等国产信创数据库;
国产信创操作系统:支持麒麟服务器操作系统、统信UOS、华为欧拉等国产服务器操作系统部署;
服务注册&发现与调用:使用 Nacos 作为注册中心,实现多配置、分群组、分命名空间、多业务模块的注册和发现功能;
内部调用:集成了 Open Feign 和 Apache Dubbo 两种内部调用模式,并且可以实现无缝切换;
业务熔断:采用 Sentinel 实现业务流量控制、熔断降级、系统负载等多个维度保护服务的稳定性,避免服务之间出现雪崩;
应用监控:利用 Spring Boot Admin 来监控各个服务的运行状态;
链路追踪:基于 SkyWalking 作为项目的全链路性能监控, 从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,并且方便找到故障产生的源头,生产上可极大缩短故障排除时间;
用户界面
- 基于 Element-UI 平面化界面设计,精细,更加美观、高端、大气、上档次。
- 无刷新设计,除了进入功能页面和新页面,其它情况下全部采用 Ajax 交互,优化体验和性能。
- 支持一键换肤,系统右上角设置即可快速切换整个UI的风格,不仅仅是色调和样式,布局也可改变。支持自定义扩展项目独有的主题样式风格。
- 优化用户功能操作,大众思维模式,功能清晰,更加贴切和友好。
- 国际化的支持,页面标签国际化,字典菜单国际化,数据国际化。
前端开发
- 采用当前比较流行的 Vue,它的优点很多,大家可自行查阅官网介绍。
- 封装通用组件,实现基本表单控件、树选择,列表选择,文件上传,等等,总之是简化开发。
- 数据模板组件封装,自动完成分页、排序、列宽、多表头、子表、编辑表、流程发起等。
- 支持前后分离应用,方便与手机 API 接口对接,Token 方式授权。
功能及组件
- 工具类 Utils 封装优化,应有尽有,包分类层次分明,独立工具类项目。
- 在线任务调度,界面化管理,可新增,编辑、删除、暂停、恢复、运行一次等操作,支持独立数据源,分布式作业调度,调度日志监控分析查询。
- 代码生成工具操作简化及优化,支持多数据源。
- 在线查询在线人员,强踢在线账号。
整体架构
平台设计灵活可扩展、可移植、可应对高并发需求。同时兼顾本地化、私有云、公有云部署,支持SaaS模式应用。
-
采用前后端分离的模式:前端基于
vue-element-admin
框架定制开发,后端采用Spring Cloud Alibaba
全家桶; -
服务注册&发现与调用:基于
Nacos
来实现的服务注册与发现,使用Open Feign
/Dubbo RPC
来实现服务互调; -
统一授权认证:基于
Spring Security
、Spring OAuth2
、JWT 实现的统一认证服务中心,登录基于 spring security 的标准登录流程。客户端授权支持 oauth2.0 的四种授权模式:授权码模式、简化模式、密码模式、客户端模式,授权流程跟标准的 oauth2 流程一致。web 端采用简化模式(implicit)登录系统,移动端可使用密码模式(password)登录系统。同时还支持基于 Spring Social 的三方账号登录方式,如微信、QQ等。 -
业务熔断:采用
Sentinel
实现业务流量控制、熔断降级、系统负载等多个维度保护服务的稳定性; -
应用监控:利用
Spring Boot Admin
来监控各个服务的运行状态; -
链路调用监控:基于
SkyWalking
作为项目的全链路性能监控, 从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,并且方便找到故障产生的源头,生产上可极大缩短故障排除时间; -
灵活的权限控制:基于
RBAC
权限管理,该功能模块下的功能用于维护企业的组织架构信息以及员工信息。主要包含了组织架构管理、部门管理、分级管理员、角色管理、岗位管理、企业通讯录、通信录同步等功能。用户可在此功能模块下维护公司的组织架构信息(组织/部门/角色/岗位)和用户信息,也可以通过第三方应用(钉钉/企业微信)将组织架构信息一键导入到系统中,也可以使用组织架构和员工信息的导入功能将数据导入到系统中; -
支持多租户:简单配置即可转为多租户模式,实现数据隔离,真实达到城市级停车运营,一个城市一套租户数据库隔离管理;
-
统一接口管理:基于
Swagger
拓展的API文档服务,主要提供在平台开发阶段的API文档管理和API调试等功能。
主要技术栈
后端技术栈
- 主框架:Spring Cloud Alibaba + Spring Boot + Spring Framework
- 安全框架:Spring Cloud Security OAuth2+JWT
- 持久层框架:Mybatis-plus、Hibernate Validation、
- 数据库连接池:Alibaba Druid
- JSON序列化:Jackson&FastJSON
- 数据缓存:Redis
- 消息队列: RabbitMQ
- API网关:Spring Cloud Gateway
- 服务注册&发现和配置中心: Nacos
- 服务监控:Spring Boot Admin
- 服务消费:OpenFeign/Dubbo RPC
- 大数据检索框架:Elasticsearch+Canal+Mysql数据同步
- 日志收集:E(Elasticsearch)+L(Logstash)+K(Kibana)
- 负载均衡:Ribbon
- 服务熔断:Sentinel
- 项目构建:Maven
- 分布式事务:Seata
- 链路追踪:Skywalking
- 即时通讯:spring-boot-starter-websocket
- AOP:spring-boot-starter-aop
- 文件服务:阿里云OSS、本地存储、七牛云kodo、MinIO
前端技术栈
- Vue2 全家桶
- Element-ui
技术特色
基于Java主流开源技术构建
平台基于流行的J2EE技术栈,应用稳定的Spring Cloud微服务框架进行构建,主流开源的架构给我们带来了以下优势:
- 广泛的业界支持:流行的开源技术都是广泛使用的,是业界默认的标准。
- 提高开发效率:流行的开源技术会有大量的开发人员提供大量个性的解决方案,能更快速的找到满足需求的各种解决方案。
- 提高平台的技术稳定性:流行的开源技术已经通过大量的业务场景验证,保证了技术的成熟性,提高了平台和稳定性。
- 可维护性:流行的开源技术确保了各种社区的活跃度,可以更好的解决平台维护过程中遇到的问题。
基于微服务架构设计和扩展
城市智慧停车云平台
采用微服务架构设计,平台基础模块的每一个应用功能都使用微服务完成:
- 每个服务都有一个清楚的功能边界
- 每一个后台服务开放REST API,许多服务本身也采用了其它服务提供的API
- 通过 API Gateway来统一API暴露
- 通过 Nacos 配置中心来统一管理平台服务配置
- 每个微服务可以选择独立部署和弹性资源配置
基于城市智慧停车云平台
开发的应用系统,可以很容易的将业务对象作为基本单元进行纵向拆分,以交互层次作为标准进行横向拆分,从而形成多应用交互的微应用架构体系,有效的实现应用的拆分,实现敏捷开发和部署。
服务无状态
单个微服务节点的性能在大业务量时性能会遇到瓶颈,无法满足对业务系统的要求,城市智慧停车云平台
服务采用无状态化设计,可以实现水平扩展部署。
前后端分离
提供完整的REST API接口,采用前后端分离技术,可以同时高效的支持移动APP、Web、小程序等应用的开发场景,同时结合Spring Security的OAuth2扩展,采用统一的认证中心,保障REST API的安全性。
架功能说明
统一安全认证中心
基于 Spring Security
、Spring OAuth2
、JWT
实现的统一认证服务中心,登录基于 Spring Security 的标准登录流程。客户端授权支持 oauth2.0 的四种授权模式:授权码模式、简化模式、密码模式、客户端模式,授权流程跟标准的 oauth2 流程一致。web 端采用简化模式(implicit)登录系统,移动端可使用密码模式(password)登录系统。同时还支持基于 Spring Social 的第三方账号登录方式,如微信、QQ等。
基于RBAC的权限体系
基于角色的访问控制方法(Role-Based Access Control,简称 RBAC)是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是:
- 减小授权管理的复杂性,降低管理开销;
- 灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。
用于维护企业的组织架构信息以及员工信息。主要包含了组织信息、员工定义、组织架构、企业通讯录、通信录同步等功能。用户可在此功能模块下维护公司的组织架构信息(组织/部门/角色/岗位)和用户信息,也可以通过第三方应用(钉钉/企业微信)将组织架构信息一键导入到系统中,也可以使用组织架构和员工信息的导入功能将数据导入到系统中。
多租户实现
系统平台支持一个实例服务多个用户(Customer),每一个用户被称之为租户(tenant),软件给予租户可以对系统进行部分;支持添加多平台租户流行和租户管理,通过管理租户来实现不同平台之间的数据隔离;如Saas多租户身份验证,每个管理账号有独立数据、可配置子账户,方便多人使用或统一管理。
文件存储
支持本地存储、网络存储(minIO)、Aliyun OSS,Tencent COS等存储方案。
服务高可用
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。城市智慧停车云平台
整合Sentinel
以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel
同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。