基于Springboot+Vue+Element实现汽车租赁系统

简介: 基于Springboot+Vue+Element实现汽车租赁系统

项目编号:BS-XX-129

一,项目简介


   在现代智能化的普遍环境下,人们在精神上的需求已经在某种程度上超越了物质需求。这一切都源于人们的物质生活不断提升,生活质量发生了质的跃进。要想富先修路,这是一句民间口号同时也是一个简单的真理,人们也正是源于对这句口号的深入贯彻,所以我们的生活才能越来越好,路作为载体,它为不计其数的车辆提供了实现车辆价值的运输条件。从另外方面来看,最近几十年来汽车的普及应用,业己为现在整个社会的进步贡献了不可磨灭的推动力量。在一些地区,灵活用车的需求成了人们(特别是青少年年龄阶段)一个不可或缺的需求之一,例如:刚考完驾照的人,想过一把驾驶瘾,为日后的行车做好准备;出差去了某个地区临时紧急需要用车;自己的日常代步车损坏,需要一个替代品等等情况,所以汽车租赁公司的出现是十分的必要的,它可以为人们解决这样一些需要灵活用车的问题。而随着大量汽车租赁公司的出现,开发一套行之有效的汽车租赁管理系统则显得十分必要。


   本项目基于Spring Boot与Vue.js的一个汽车租赁系统,系统整体功能完整,界面简洁大方,主要实现了用户管理、汽车管理、分类管理、库存查看、客户管理、定单管理、财务管理和收支的统计,并采用图形报表的方式来进行财务的统计信息等。可以做为毕业设计和课程设计或期未作业使用。

二,环境介绍


语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

后端使用Spring Boot 与 MyBatis 、Redis集成

前端使用Vue.js 与 Require集成

三,系统展示


用户登陆

http://localhost:8010/car/index#/login

image.png

后台管理界面

image.png

用户管理

image.png

车辆管理

image.png

车辆库存

image.png

image.png

车辆类别管理

image.png

车辆管理

image.png

订单管理

image.png

订单结算

image.png

财务统计报表

image.png

四,核心代码展示


package com.shengyi.controller;
import com.shengyi.common.Result;
import com.shengyi.model.CarClass;
import com.shengyi.service.CarClassService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
@RequestMapping(value = "/car/class/")
public class CarClassController {
    @Autowired
    CarClassService carClassService;
    @PostMapping("getAllClass")
    @ResponseBody
    public Result<List<CarClass>> getAllClass(){
        return carClassService.getAllClass();
    }
    @PostMapping("addClass")
    @ResponseBody
    public Result<Boolean> addClass(@Param("className") String className){
        return carClassService.addClass(className);
    }
    @PostMapping("modifyClass")
    @ResponseBody
    public Result<Boolean> modifyClass(@RequestBody CarClass carClass){
        return carClassService.modifyClassNameById(carClass);
    }
    @PostMapping("removeClass")
    @ResponseBody
    public Result<Boolean> removeClassAndCarData(@Param("classId")Long classId){
        return carClassService.removeClassAndCarData(classId);
    }
}
package com.shengyi.controller;
import com.shengyi.common.Result;
import com.shengyi.common.result.PageResult;
import com.shengyi.model.request.*;
import com.shengyi.model.response.CarDataDto;
import com.shengyi.model.response.CarStockDetailsDto;
import com.shengyi.model.response.CarStockDto;
import com.shengyi.service.CarDataService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
@RequestMapping(value = "/car/data/")
public class CarDataController {
    @Autowired
    private CarDataService carDataService;
    @PostMapping(value = "getAllStock")
    @ResponseBody
    public PageResult<CarStockDto> getAllStock(@RequestBody PageRequest request){
        return carDataService.getAllStock(request);
    }
    @PostMapping(value = "getStockDetails")
    @ResponseBody
    public PageResult<CarStockDetailsDto> getStockDetails(@RequestBody StockDetailsRequest  request){
        return carDataService.getStockDetails(request);
    }
    @PostMapping(value = "getAllCarData")
    @ResponseBody
    public PageResult<CarDataDto> getAllCarData(@RequestBody PageRequest request){
        return carDataService.getAllCarData(request);
    }
    @PostMapping(value = "searchCarData")
    @ResponseBody
    public PageResult<CarDataDto> searchCarData(@RequestBody CarDataSearchRequest request){
        return carDataService.searchCarDataByBrand(request);
    }
    @PostMapping(value = "modifyStatus")
    @ResponseBody
    public Result<Boolean> modifyStatus(@RequestBody CarDataStatusRequest request){
        return carDataService.updateCarStatus(request);
    }
    @PostMapping(value = "removeCarData")
    @ResponseBody
    public Result<Boolean> removeCarData(@Param("id") Long id){
        return carDataService.removeCarData(id);
    }
    @PostMapping(value = "getUserOptions")
    @ResponseBody
    public Result<List<OptionRequest>> getUserOptions(){
        return carDataService.getUserOptions();
    }
    @PostMapping(value = "getClassOptions")
    @ResponseBody
    public Result<List<OptionRequest>> getClassOptions(){
        return carDataService.getClassOptions();
    }
    @PostMapping(value = "modifyCarData")
    @ResponseBody
    public Result<Boolean> modifyCarData(@RequestBody CarDataDto carDataDto){
        return carDataService.updateCarData(carDataDto);
    }
    @PostMapping(value = "addCarData")
    @ResponseBody
    public Result<Boolean> addCarData(@RequestBody CarDataDto carDataDto){
        return carDataService.addCarData(carDataDto);
    }
}
package com.shengyi.controller;
import com.shengyi.common.Result;
import com.shengyi.common.result.PageResult;
import com.shengyi.model.CarData;
import com.shengyi.model.CarRecord;
import com.shengyi.model.request.CarRecordRequest;
import com.shengyi.model.request.OptionRequest;
import com.shengyi.model.request.SettlementRecordRequest;
import com.shengyi.model.response.CarRecordDto;
import com.shengyi.model.response.ClassOptions;
import com.shengyi.service.CarRecordService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/car/record/")
public class CarRecordController {
    @Autowired
    private CarRecordService carRecordService;
    @PostMapping(value = "getRecordByTime")
    @ResponseBody
    public PageResult<CarRecordDto> getRecordByTime(@RequestBody CarRecordRequest carRecordRequest){
        return carRecordService.getCarRecordByTime(carRecordRequest);
    }
    @PostMapping(value = "removeRecordById")
    @ResponseBody
    public Result<Boolean> removeRecordById(@Param("id") Long id){
        return carRecordService.removeRecordById(id);
    }
    @PostMapping(value = "getOptions")
    @ResponseBody
    public Result<List<ClassOptions>> getOptios(){
        return carRecordService.getOptions();
    }
    @PostMapping(value = "getCustomerOptions")
    @ResponseBody
    public Result<List<OptionRequest>> getCustomerOptions(@Param("customerName") String customerName){
        return carRecordService.getCustomerOptions(customerName);
    }
    @PostMapping(value = "getCurrentCarData")
    @ResponseBody Result<CarData> getCurrentCarData(@Param("id") Long id){
        return carRecordService.getCarDataById(id);
    }
    @PostMapping(value = "addCarRecord")
    @ResponseBody Result<Boolean> addCarRecord(@RequestBody CarRecord carRecord){
        return carRecordService.addRecord(carRecord);
    }
    @PostMapping(value = "getCurrentDate")
    @ResponseBody Result<Date> getCurrentDate(){
        return carRecordService.getCurrentDate();
    }
    @PostMapping(value = "settlement")
    @ResponseBody Result<Boolean> settlement(@RequestBody SettlementRecordRequest recordRequest){
        return carRecordService.settlementRecord(recordRequest);
    }
}
package com.shengyi.controller;
import com.shengyi.common.Result;
import com.shengyi.common.result.PageResult;
import com.shengyi.model.CarCustomer;
import com.shengyi.model.request.CustomerRequest;
import com.shengyi.model.request.CustomerSearchRequest;
import com.shengyi.model.response.CustomerDto;
import com.shengyi.model.response.CustomerSexCountDto;
import com.shengyi.service.CustomerService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
@RequestMapping(value = "/car/customer/")
public class CustomerController {
    @Autowired
    private CustomerService customerService;
    @PostMapping(value = "getAllCustomer")
    @ResponseBody
    public PageResult<CustomerDto> getAllCustomer(@RequestBody CustomerRequest request){
        return customerService.getAllCustomer(request);
    }
    @PostMapping(value = "addCustomer")
    @ResponseBody
    public Result<Boolean> addCustomer(@RequestBody CarCustomer carCustomer){
        return customerService.addCustomer(carCustomer);
    }
    @PostMapping(value = "modifyCustomer")
    @ResponseBody
    public Result<Boolean> modifyCustomer(@RequestBody CarCustomer carCustomer){
        return customerService.updateCustomer(carCustomer);
    }
    @PostMapping(value = "removeCustomer")
    @ResponseBody
    public Result<Boolean> removeCustomer(@Param("id") Long id){
        return customerService.deleteCustomer(id);
    }
    @PostMapping(value = "searchCustomer")
    @ResponseBody
    public PageResult<CustomerDto> searchCustomer(@RequestBody CustomerSearchRequest request){
        return customerService.searchCustomerByName(request);
    }
    @PostMapping(value = "getAgeCount")
    @ResponseBody
    public Result<List<Integer>> getAgeCount(){
        return customerService.getAgeCount();
    }
    @PostMapping(value = "getSexCount")
    @ResponseBody
    public Result<List<CustomerSexCountDto>> getSexCount(){
        return customerService.getSexCount();
    }
}

五,项目总结


传统的租车模式更多的是基于人力手动记账的方式来进行管理,或者是开发的基于C/S结构的简单管理系统,像以前有使用VB,Delphi等技术开发的C/S模式的管理系统。使用人工记账管理操作繁琐,早己被淘汰,而使用C/S结构开发的传统管理系统使用起来又不太方便,它的特点是必须在客户的机器上安装对应的客户端软件,这样才能登陆使用,这增加了客户端维护升级的难度。而我这次开发的汽车租赁管理系统,是使用了现在高频使用的另一种开发结构,基于浏览器客户端的方式来实现,它可以实现打开电脑自带的浏览器,输入系统地址就可以随时在有网络的电脑上登陆本租赁系统进行相应的管理操作,无论是从使用的便利性还是性能上都有较大的提升,这对于汽车租赁公司的管理有着很大的帮助。

相关文章
|
19天前
|
JavaScript 安全 Java
基于springboot的摄影器材租赁回收系统
本系统基于Java、Spring Boot与Vue技术,构建摄影器材租赁回收平台,解决市场不规范、资源浪费等问题。支持在线预约、信用免押、智能评估等功能,提升器材利用率,降低用户成本,推动行业绿色可持续发展。
|
21天前
|
前端开发 安全 Java
基于springboot+vue开发的会议预约管理系统
一个完整的会议预约管理系统,包含前端用户界面、管理后台和后端API服务。 ### 后端 - **框架**: Spring Boot 2.7.18 - **数据库**: MySQL 5.6+ - **ORM**: MyBatis Plus 3.5.3.1 - **安全**: Spring Security + JWT - **Java版本**: Java 11 ### 前端 - **框架**: Vue 3.3.4 - **UI组件**: Element Plus 2.3.8 - **构建工具**: Vite 4.4.5 - **状态管理**: Pinia 2.1.6 - **HTTP客户端
129 4
基于springboot+vue开发的会议预约管理系统
|
19天前
|
JavaScript 前端开发 Java
基于springboot的4s店汽车试驾销售服务系统
针对传统4S店运营效率低、服务体验差等问题,研究基于SpringBoot的汽车销售服务系统,融合Java、Vue、MySQL等技术,实现业务自动化、客户个性化服务与数据智能分析,提升管理效率与客户满意度,推动4S店数字化转型与竞争力升级。
|
5月前
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
470 1
|
6月前
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
431 7
|
2月前
|
前端开发 JavaScript Java
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
本系统基于SpringBoot与Vue3开发,实现校园食堂评价功能。前台支持用户注册登录、食堂浏览、菜品查看及评价发布;后台提供食堂、菜品与评价管理模块,支持权限控制与数据维护。技术栈涵盖SpringBoot、MyBatisPlus、Vue3、ElementUI等,适配响应式布局,提供完整源码与数据库脚本,可直接运行部署。
101 0
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
|
5月前
|
供应链 JavaScript BI
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
这是一款专为小微企业打造的 SaaS ERP 管理系统,基于 SpringBoot+Vue+ElementUI+UniAPP 技术栈开发,帮助企业轻松上云。系统覆盖进销存、采购、销售、生产、财务、品质、OA 办公及 CRM 等核心功能,业务流程清晰且操作简便。支持二次开发与商用,提供自定义界面、审批流配置及灵活报表设计,助力企业高效管理与数字化转型。
483 2
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
|
9月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue实现的留守儿童爱心网站设计与实现(计算机毕设项目实战+源码+文档)
博主是一位全网粉丝超过100万的CSDN特邀作者、博客专家,专注于Java、Python、PHP等技术领域。提供SpringBoot、Vue、HTML、Uniapp、PHP、Python、NodeJS、爬虫、数据可视化等技术服务,涵盖免费选题、功能设计、开题报告、论文辅导、答辩PPT等。系统采用SpringBoot后端框架和Vue前端框架,确保高效开发与良好用户体验。所有代码由博主亲自开发,并提供全程录音录屏讲解服务,保障学习效果。欢迎点赞、收藏、关注、评论,获取更多精品案例源码。
|
9月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue实现的家政服务管理平台设计与实现(计算机毕设项目实战+源码+文档)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
9月前
|
JavaScript 搜索推荐 Java
基于SpringBoot+Vue实现的家乡特色推荐系统设计与实现(源码+文档+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!