• java项目:基于Springboot+Vue+Element实现汽车租赁系统


    作者主页:编程指南针

    作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

    主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助

    文末获取源码 

    项目编号: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

    后台管理界面

    用户管理

    车辆管理

    车辆库存

    车辆类别管理

    车辆管理

    订单管理

    订单结算

    财务统计报表

    四,核心代码展示

    1. package com.shengyi.controller;
    2. import com.shengyi.common.Result;
    3. import com.shengyi.model.CarClass;
    4. import com.shengyi.service.CarClassService;
    5. import org.apache.ibatis.annotations.Param;
    6. import org.springframework.beans.factory.annotation.Autowired;
    7. import org.springframework.stereotype.Controller;
    8. import org.springframework.web.bind.annotation.PostMapping;
    9. import org.springframework.web.bind.annotation.RequestBody;
    10. import org.springframework.web.bind.annotation.RequestMapping;
    11. import org.springframework.web.bind.annotation.ResponseBody;
    12. import java.util.List;
    13. @Controller
    14. @RequestMapping(value = "/car/class/")
    15. public class CarClassController {
    16. @Autowired
    17. CarClassService carClassService;
    18. @PostMapping("getAllClass")
    19. @ResponseBody
    20. public Result> getAllClass(){
    21. return carClassService.getAllClass();
    22. }
    23. @PostMapping("addClass")
    24. @ResponseBody
    25. public Result addClass(@Param("className") String className){
    26. return carClassService.addClass(className);
    27. }
    28. @PostMapping("modifyClass")
    29. @ResponseBody
    30. public Result modifyClass(@RequestBody CarClass carClass){
    31. return carClassService.modifyClassNameById(carClass);
    32. }
    33. @PostMapping("removeClass")
    34. @ResponseBody
    35. public Result removeClassAndCarData(@Param("classId")Long classId){
    36. return carClassService.removeClassAndCarData(classId);
    37. }
    38. }

    1. package com.shengyi.controller;
    2. import com.shengyi.common.Result;
    3. import com.shengyi.common.result.PageResult;
    4. import com.shengyi.model.request.*;
    5. import com.shengyi.model.response.CarDataDto;
    6. import com.shengyi.model.response.CarStockDetailsDto;
    7. import com.shengyi.model.response.CarStockDto;
    8. import com.shengyi.service.CarDataService;
    9. import org.apache.ibatis.annotations.Param;
    10. import org.springframework.beans.factory.annotation.Autowired;
    11. import org.springframework.stereotype.Controller;
    12. import org.springframework.web.bind.annotation.PostMapping;
    13. import org.springframework.web.bind.annotation.RequestBody;
    14. import org.springframework.web.bind.annotation.RequestMapping;
    15. import org.springframework.web.bind.annotation.ResponseBody;
    16. import java.util.List;
    17. @Controller
    18. @RequestMapping(value = "/car/data/")
    19. public class CarDataController {
    20. @Autowired
    21. private CarDataService carDataService;
    22. @PostMapping(value = "getAllStock")
    23. @ResponseBody
    24. public PageResult getAllStock(@RequestBody PageRequest request){
    25. return carDataService.getAllStock(request);
    26. }
    27. @PostMapping(value = "getStockDetails")
    28. @ResponseBody
    29. public PageResult getStockDetails(@RequestBody StockDetailsRequest request){
    30. return carDataService.getStockDetails(request);
    31. }
    32. @PostMapping(value = "getAllCarData")
    33. @ResponseBody
    34. public PageResult getAllCarData(@RequestBody PageRequest request){
    35. return carDataService.getAllCarData(request);
    36. }
    37. @PostMapping(value = "searchCarData")
    38. @ResponseBody
    39. public PageResult searchCarData(@RequestBody CarDataSearchRequest request){
    40. return carDataService.searchCarDataByBrand(request);
    41. }
    42. @PostMapping(value = "modifyStatus")
    43. @ResponseBody
    44. public Result modifyStatus(@RequestBody CarDataStatusRequest request){
    45. return carDataService.updateCarStatus(request);
    46. }
    47. @PostMapping(value = "removeCarData")
    48. @ResponseBody
    49. public Result removeCarData(@Param("id") Long id){
    50. return carDataService.removeCarData(id);
    51. }
    52. @PostMapping(value = "getUserOptions")
    53. @ResponseBody
    54. public Result> getUserOptions(){
    55. return carDataService.getUserOptions();
    56. }
    57. @PostMapping(value = "getClassOptions")
    58. @ResponseBody
    59. public Result> getClassOptions(){
    60. return carDataService.getClassOptions();
    61. }
    62. @PostMapping(value = "modifyCarData")
    63. @ResponseBody
    64. public Result modifyCarData(@RequestBody CarDataDto carDataDto){
    65. return carDataService.updateCarData(carDataDto);
    66. }
    67. @PostMapping(value = "addCarData")
    68. @ResponseBody
    69. public Result addCarData(@RequestBody CarDataDto carDataDto){
    70. return carDataService.addCarData(carDataDto);
    71. }
    72. }
    1. package com.shengyi.controller;
    2. import com.shengyi.common.Result;
    3. import com.shengyi.common.result.PageResult;
    4. import com.shengyi.model.CarData;
    5. import com.shengyi.model.CarRecord;
    6. import com.shengyi.model.request.CarRecordRequest;
    7. import com.shengyi.model.request.OptionRequest;
    8. import com.shengyi.model.request.SettlementRecordRequest;
    9. import com.shengyi.model.response.CarRecordDto;
    10. import com.shengyi.model.response.ClassOptions;
    11. import com.shengyi.service.CarRecordService;
    12. import org.apache.ibatis.annotations.Param;
    13. import org.springframework.beans.factory.annotation.Autowired;
    14. import org.springframework.stereotype.Controller;
    15. import org.springframework.web.bind.annotation.PostMapping;
    16. import org.springframework.web.bind.annotation.RequestBody;
    17. import org.springframework.web.bind.annotation.RequestMapping;
    18. import org.springframework.web.bind.annotation.ResponseBody;
    19. import java.util.Date;
    20. import java.util.List;
    21. @Controller
    22. @RequestMapping("/car/record/")
    23. public class CarRecordController {
    24. @Autowired
    25. private CarRecordService carRecordService;
    26. @PostMapping(value = "getRecordByTime")
    27. @ResponseBody
    28. public PageResult getRecordByTime(@RequestBody CarRecordRequest carRecordRequest){
    29. return carRecordService.getCarRecordByTime(carRecordRequest);
    30. }
    31. @PostMapping(value = "removeRecordById")
    32. @ResponseBody
    33. public Result removeRecordById(@Param("id") Long id){
    34. return carRecordService.removeRecordById(id);
    35. }
    36. @PostMapping(value = "getOptions")
    37. @ResponseBody
    38. public Result> getOptios(){
    39. return carRecordService.getOptions();
    40. }
    41. @PostMapping(value = "getCustomerOptions")
    42. @ResponseBody
    43. public Result> getCustomerOptions(@Param("customerName") String customerName){
    44. return carRecordService.getCustomerOptions(customerName);
    45. }
    46. @PostMapping(value = "getCurrentCarData")
    47. @ResponseBody Result getCurrentCarData(@Param("id") Long id){
    48. return carRecordService.getCarDataById(id);
    49. }
    50. @PostMapping(value = "addCarRecord")
    51. @ResponseBody Result addCarRecord(@RequestBody CarRecord carRecord){
    52. return carRecordService.addRecord(carRecord);
    53. }
    54. @PostMapping(value = "getCurrentDate")
    55. @ResponseBody Result getCurrentDate(){
    56. return carRecordService.getCurrentDate();
    57. }
    58. @PostMapping(value = "settlement")
    59. @ResponseBody Result settlement(@RequestBody SettlementRecordRequest recordRequest){
    60. return carRecordService.settlementRecord(recordRequest);
    61. }
    62. }
    1. package com.shengyi.controller;
    2. import com.shengyi.common.Result;
    3. import com.shengyi.common.result.PageResult;
    4. import com.shengyi.model.CarCustomer;
    5. import com.shengyi.model.request.CustomerRequest;
    6. import com.shengyi.model.request.CustomerSearchRequest;
    7. import com.shengyi.model.response.CustomerDto;
    8. import com.shengyi.model.response.CustomerSexCountDto;
    9. import com.shengyi.service.CustomerService;
    10. import org.apache.ibatis.annotations.Param;
    11. import org.springframework.beans.factory.annotation.Autowired;
    12. import org.springframework.stereotype.Controller;
    13. import org.springframework.web.bind.annotation.PostMapping;
    14. import org.springframework.web.bind.annotation.RequestBody;
    15. import org.springframework.web.bind.annotation.RequestMapping;
    16. import org.springframework.web.bind.annotation.ResponseBody;
    17. import java.util.List;
    18. @Controller
    19. @RequestMapping(value = "/car/customer/")
    20. public class CustomerController {
    21. @Autowired
    22. private CustomerService customerService;
    23. @PostMapping(value = "getAllCustomer")
    24. @ResponseBody
    25. public PageResult getAllCustomer(@RequestBody CustomerRequest request){
    26. return customerService.getAllCustomer(request);
    27. }
    28. @PostMapping(value = "addCustomer")
    29. @ResponseBody
    30. public Result addCustomer(@RequestBody CarCustomer carCustomer){
    31. return customerService.addCustomer(carCustomer);
    32. }
    33. @PostMapping(value = "modifyCustomer")
    34. @ResponseBody
    35. public Result modifyCustomer(@RequestBody CarCustomer carCustomer){
    36. return customerService.updateCustomer(carCustomer);
    37. }
    38. @PostMapping(value = "removeCustomer")
    39. @ResponseBody
    40. public Result removeCustomer(@Param("id") Long id){
    41. return customerService.deleteCustomer(id);
    42. }
    43. @PostMapping(value = "searchCustomer")
    44. @ResponseBody
    45. public PageResult searchCustomer(@RequestBody CustomerSearchRequest request){
    46. return customerService.searchCustomerByName(request);
    47. }
    48. @PostMapping(value = "getAgeCount")
    49. @ResponseBody
    50. public Result> getAgeCount(){
    51. return customerService.getAgeCount();
    52. }
    53. @PostMapping(value = "getSexCount")
    54. @ResponseBody
    55. public Result> getSexCount(){
    56. return customerService.getSexCount();
    57. }
    58. }

    五,项目总结

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

  • 相关阅读:
    【LeetCode】238. 除自身以外数组的乘积
    Python吴恩达深度学习作业21 -- 词向量的基本操作
    Cannot connect to the Docker
    Vue3中diff算法比对新老节点孩子数组
    Vue 3 父子组件互调方法 - setup 语法糖写法
    LeetCode-11-盛最多水的容器
    Mathpix替代者|科研人必备公式识别插件|latexocr安装教程
    词汇与词组
    前端如何使用post下载文件(将用户勾选的数据导出、下载),以及下载window.open是预览的文件
    视觉SLAM十四讲(高翔版本),ch1-2章节部分笔记
  • 原文地址:https://blog.csdn.net/whirlwind526/article/details/126133638