Vue+SpringBoot打造智能停车场管理系统(附源码文档)(一)

简介: Vue+SpringBoot打造智能停车场管理系统(附源码文档)

项目源码及文档下载https://download.csdn.net/download/qq_41464123/87894045

项目交流讨论/文档预览帖https://bbs.csdn.net/topics/615889652

项目编号:S005

一、摘要

随着我国经济的不断发展,人民生活水平的也日益提高,外出购物、旅游意向也越来越强,对交通出行的需求也越来越大。在一些大型商贸场所,无论是人流量还是车流都格外大,而道路承载压力也随之增加,所以城市停车问题的解决也越发急迫。由此观之,如何解决商场等人流量多等地的停车问题,是解决交通拥堵的关键点。

综上所述,设计一个智能停车场管理系统能够简化人们停车流程,提高停车效率,从而解决拥挤问题,节省人们时间的同时也间接推动经济发展。本文研究的系统采用JAVA开发,智能停车场管理系统的应用取得了显著的效果。通过智能停车场管理系统的运行,停车场实现了车辆进出的自动化、停车场管理的精细化和收费流程的标准化,从而提高停车场管理效率和准确性,为停车场管理决策提供更完整、准确的数据支持。

  • 前端:Vue 2.7.10
  • 后端:Spring Boot 3.1.10
  • 数据库:MySQL 8.0.31

二、研究内容

能停车场管理系统包含的车主管理模块、车辆管理模块、停车场模块、停车记录模块、IC卡模块、IC卡挂失模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,智能停车场管理系统基于角色的访问控制,给车主和停车场管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

S005智能停车场管理系统录屏

A. 车主端功能

包括:我的车辆模块、我的停车模块、我的IC卡等模块。

  1. 我的车辆模块:用于车主查询自己的车辆数据,前端使用View UI组件库的Table组件来实现表格预览,包括车辆的车牌号、行驶证、车辆类型、车主姓名等数据,如对数据有异议,可以联系Button组件请求后端API接口,从而实现功能。
  2. 我的停车模块:用于车主查询自己的车辆的停车数据,前端使用View UI组件库的Form组件来实现,提交用户输入的表单数据,包括车辆的车牌号、停放开始时间、停放结束时间、停车费用等数据,如对数据有异议,可以联系系统管理员做核实处理。
  3. 我的停车模块:用于车主查询自己的IC卡数据,前端使用View UI组件库的List列表组件来实现,包括IC卡号、开卡日期、开卡经办人、服务电话等数据,如IC卡遗失,可以在线发起挂失手续。

B. 停车工作人员功能

包括:车辆管理、停车管理、IC卡管理模块。(提示:可以自助添加角色,可视化分配菜单权限实现)

  1. 车辆管理:受理车主提出的车辆新增、车辆编辑、车辆删除申请,增删改查由mybatis来实现。
  2. 停车管理:受理车主提出的停车数据更新业务,更新功能后端由mybatis来实现。
  3. IC卡管理:受理车主提出的挂失业务、开卡业务、余额充值业务,功能后端由mybatis来实现。

C. 系统管理员功能

在车主、停车工作人员所有功能的基础上,可以对系统角色权限进行更改维护、可以对停车费收费规则进行更新,采用RABC基于角色的访问控制,使用spring security 框架来实现鉴权控制。

1. 停车位模块

停车位是城市不可或缺的一部分,在城市和人民的生活、工作和流动中具有重要意义。随着城市化进程的加快和汽车保有量的增加,城市交通拥堵问题越来越明显。如果有足够的停车位,可以更好地引导交通,防止交通混乱,缓解交通拥堵,在城市内驾驶车辆的效率取决于停车位的数量和位置。良好的停车位规划和管理可以提高车辆停车效率,减少道路拥堵,提高城市交通效率。停车位的可用性直接影响市民的出行体验。当停车位紧张时,市民很难开车出去,如果有足够的停车位,市民出行将更加方便和舒适。停车位的可用性也会影响商业中心区域的吸引力,如果没有足够的停车位,消费者会选择其他商业中心,这将影响经济发展。

2. 车辆模块

车辆模块是智能停车场管理系统的关键组件之一,用于记录、管理和监控车辆信息和状态。车辆模块可以实现车辆进出的自动化和数据处理的自动化,从而提高停车管理的效率和准确性。通过车辆模块,停车可以为用户提供更智能、更方便的服务,减少用户等待时间和不良体验。车辆模块可以有效控制车辆的交通流量,缓解道路拥堵,改善城市交通拥堵问题。车辆模块可以记录和监控车辆的进出,可以减少非法侵入和车辆盗窃等安全问题。车辆模块在停车管理系统中具有重要的研究意义,可以提高停车管理的效率和服务质量,改善城市交通拥堵,加强安全监督管理,为停车管理提供数据支持。

3. 停车记录模块

停车记录是对车辆的停车位置、停留时间和计费状态等信息的有效记录和管理。停车记录可以让车主清楚地知道他们的车辆停在哪里和什么时候停,避免车辆被盗和其他安全问题。通过停车记录,可以获得停车位使用情况、停车流量等信息,让停车场管理者更好地分析和制定停车策略,帮助维护停车场的秩序和安全。停车记录也可以用于精细化管理,例如通过针对特定高峰时间和特定情况的差异化定价政策来提高停车利用率和管理效率。通过停车记录,可以了解车主的停车习惯和需求,为车主提供更好的停车服务,提高停车场的服务质量和用户体验。

4. IC卡模块

IC卡是智能卡的缩写,车主可以拥有一张或多张的IC卡,用于停车费用的缴纳,IC卡字段包括IC卡号、开卡日期、所属人、经办人、服务电话、余额、创建人、创建时间,车主可以申请新的IC卡,停车场管理员可以新增、挂失、编辑、条件查询车主的IC卡。

5. IC卡挂失模块

IC卡是一张实体卡,车主难免会遗失或损坏,当出现这类情况时则无法完成停车费用缴纳,这就需要建一个IC卡挂失模块,给车主的挂失卡替换为新的IC卡,IC卡挂失字段包括原卡号、新卡号、申请人、申请日期、申请状态、审核状态、经办人、创建时间,车主可以选择自己名下的IC卡发起挂失申请,停车场管理员可以审核车主的IC卡挂失申请。

三、界面展示

3.1 登录注册

登录界面的 Vue 代码如下。

<Tabs v-model="tabName" @on-click="changeTabName" class="loginTab">
    <TabPane label="账号密码登录" name="userAndPassword">
        <Form ref="usernameLoginForm" :model="form" :rules="usernameLoginFormRules" class="form">
            <FormItem prop="username" class="loginInput">
                <Row>
                    <Input v-model="form.username" size="large" clearable placeholder="登录账号" autocomplete="off">
                    <Icon class="iconfont icon-yonghu" slot="prefix" style="line-height:50px" />
                    </Input>
                </Row>
            </FormItem>
            <FormItem prop="password">
                <Input style="height:50px;line-height:50px" type="password" v-model="form.password" size="large" placeholder="请输入登录密码" password autocomplete="off">
                <Icon class="iconfont icon-mima1" slot="prefix" style="line-height:50px" />
                </Input>
            </FormItem>
            <FormItem prop="imgCode">
                <Row type="flex" justify="space-between" style="align-items: center;overflow: hidden;">
                    <Input v-model="form.imgCode" size="large" clearable placeholder="请输入验证码" :maxlength="10" class="input-verify" />
                    <div class="code-image" style="position:relative;font-size:12px;">
                        <Spin v-if="loadingCaptcha" fix></Spin>
                        <img :src="captchaImg" @click="getCaptchaImg" alt="验证码加载失败" style="width:110px;cursor:pointer;display:block" />
                    </div>
                </Row>
            </FormItem>
        </Form>
        <Row type="flex" justify="space-between" align="middle">
            <Checkbox v-model="saveLogin" size="large">是否自动登录</Checkbox>
            <router-link to="/regist">
                <a class="forget-pass">没有账号?点我注册</a>
            </router-link>
        </Row>
        <Row>
            <Button class="login-btn" type="primary" size="large" :loading="loading" @click="submitLogin" long>
                <span v-if="!loading" style="letter-spacing:20px; font-weight:bold">登录</span>
                <span v-else>正在登录...请稍后}</span>
            </Button>
        </Row>
    </TabPane>
    <TabPane label="企业微信扫码" name="mobile">
        <div id="qywxsmqywxsm"></div>
    </TabPane>
</Tabs>

查询用户(车主)的核心代码如下。

@RequestMapping(value = "/getUserList", method = RequestMethod.GET)
@ApiOperation(value = "查询所有车主")
public Result<List<User>> getUserList(@RequestParam Integer type){
    QueryWrapper<User> qw = new QueryWrapper<>();
    qw.eq("type",type);
    return new ResultUtil<List<User>>().setData(iUserService.list(qw));
}

3.2 车辆模块

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询车辆")
public Result<IPage<Vehicle>> getByPage(@ModelAttribute Vehicle vehicle ,@ModelAttribute PageVo page){
    QueryWrapper<Vehicle> qw = new QueryWrapper<>();
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<User> userQw = new QueryWrapper<>();
    userQw.eq("id",currUser.getId());
    userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1536606659751841799'");
    if(iUserService.count(userQw) < 1L) {
        qw.eq("owner_id",currUser.getId());
    }
    if(!ZwzNullUtils.isNull(vehicle.getCarNumber())) {
        qw.like("car_number",vehicle.getCarNumber());
    }
    if(!ZwzNullUtils.isNull(vehicle.getCarType())) {
        qw.like("car_type",vehicle.getCarType());
    }
    if(!ZwzNullUtils.isNull(vehicle.getOwnerName())) {
        qw.like("owner_name",vehicle.getOwnerName());
    }
    IPage<Vehicle> data = iVehicleService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Vehicle>>().setData(data);
}

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增车辆")
public Result<Vehicle> insert(Vehicle vehicle){
    User user = iUserService.getById(vehicle.getOwnerId());
    if(user == null) {
        return ResultUtil.error("车主不存在");
    }
    vehicle.setOwnerName(user.getNickname());
    iVehicleService.saveOrUpdate(vehicle);
    return new ResultUtil<Vehicle>().setData(vehicle);
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ApiOperation(value = "编辑车辆")
public Result<Vehicle> update(Vehicle vehicle){
    User user = iUserService.getById(vehicle.getOwnerId());
    if(user == null) {
        return ResultUtil.error("车主不存在");
    }
    vehicle.setOwnerName(user.getNickname());
    iVehicleService.saveOrUpdate(vehicle);
    return new ResultUtil<Vehicle>().setData(vehicle);
}

相关文章
|
1月前
|
数据采集 监控 前端开发
二级公立医院绩效考核系统源码,B/S架构,前后端分别基于Spring Boot和Avue框架
医院绩效管理系统通过与HIS系统的无缝对接,实现数据网络化采集、评价结果透明化管理及奖金分配自动化生成。系统涵盖科室和个人绩效考核、医疗质量考核、数据采集、绩效工资核算、收支核算、工作量统计、单项奖惩等功能,提升绩效评估的全面性、准确性和公正性。技术栈采用B/S架构,前后端分别基于Spring Boot和Avue框架。
|
6天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
52 13
|
14天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
存储 安全 Java
打造智能合同管理系统:SpringBoot与电子签章的完美融合
【10月更文挑战第7天】 在数字化转型的浪潮中,电子合同管理系统因其高效、环保和安全的特点,正逐渐成为企业合同管理的新宠。本文将分享如何利用SpringBoot框架实现一个集电子文件签字与合同管理于一体的智能系统,探索技术如何助力合同管理的现代化。
112 4
|
3月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
179 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
176 1
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
114 62
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
80 2
|
3月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
237 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统