• Java项目:ssm汽车租赁系统


    作者主页:夜未央5788

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    系统概要

    汽车租赁系统总共分为两个大的模块,分别是系统模块和业务模块。其中系统模块和业务模块底下又有其子模块。

    功能模块

    一、业务模块
    1、客户管理
    客户列表
    客户分页和模糊查询
    客户添加、修改、删除
    导出客户数据
    2、车辆管理
    车辆列表
    车辆车辆分页和模糊查询
    车辆添加、修改、删除
    3、业务管理
    汽车出租
    1、根据客户身份证查询所有未出租的车辆信息
    2、进行出租

    出租单管理
    1、多条件的模糊查询和分页
    2、出租单的修改、删除、导出

    汽车入库
    检查单管理
    1、多条件模糊查询和分页
    2、检查单修改
    3、导出检查单
    4、统计分析
    客户男女比例图
    月出租量统计
    销售员业绩统计
    出租车辆类型统计

    二、系统模块
    1、用户登陆
    校验用户名和密码
    登陆成功将登陆信息写入登陆日志
    未登录进行拦截

    2、菜单管理
    全查询菜单和根据左边的树查询不同菜单
    菜单的添加、修改、删除

    3、角色管理
    全查询角色和模糊查询
    角色的添加、修改、删除

    4、用户管理
    全查询用户和模糊查询
    用户的添加、修改、删除以及重置密码
     

    5、数据源的监控(druid monitor)

    技术选型

    1.后台技术选型:SSM(Spring SpringMVC Mybatis)
    2.前端技术选型:LayUI、dtree、echarts

    开发环境

    操作系统:Windows/Mac OS
    编程语言:Java
    开发工具:IDEA、Navicat
    项目构建:Maven 3.5.2
    服务器:Tomcat 8.5

    数据库:MySQL 8.0

    运行截图

     

     

     

     

     

     

     

     

    相关代码 

    BusController

    1. package com.yeqifu.bus.controller;
    2. import org.springframework.stereotype.Controller;
    3. import org.springframework.web.bind.annotation.RequestMapping;
    4. /**
    5. * 业务管理的路由控制器
    6. */
    7. @Controller
    8. @RequestMapping("bus")
    9. public class BusController {
    10. /**
    11. * 跳转到客户管理
    12. * @return
    13. */
    14. @RequestMapping("toCustomerManager")
    15. public String toCustomerManager(){
    16. return "business/customer/customerManager";
    17. }
    18. /**
    19. * 跳转到车辆管理
    20. * @return
    21. */
    22. @RequestMapping("toCarManager")
    23. public String toCarManager(){
    24. return "business/car/carManager";
    25. }
    26. /**
    27. * 跳转到汽车出租
    28. * @return
    29. */
    30. @RequestMapping("toRentCarManager")
    31. public String toRentCarManager(){
    32. return "business/rent/rentCarManager";
    33. }
    34. /**
    35. * 跳转到出租单管理的页面
    36. * @return
    37. */
    38. @RequestMapping("toRentManager")
    39. public String toRentManager(){
    40. return "business/rent/rentManager";
    41. }
    42. /**
    43. * 跳转到汽车入库管理的页面
    44. * @return
    45. */
    46. @RequestMapping("toCheckCarManager")
    47. public String toCheckCarManager(){
    48. return "business/check/checkCarManager";
    49. }
    50. /**
    51. * 跳转到检查单管理的页面
    52. * @return
    53. */
    54. @RequestMapping("toCheckManager")
    55. public String toCheckManager(){
    56. return "business/check/checkManager";
    57. }
    58. }

    车辆管理控制器

    1. package com.yeqifu.bus.controller;
    2. import com.yeqifu.bus.domain.Car;
    3. import com.yeqifu.bus.service.ICarService;
    4. import com.yeqifu.bus.vo.CarVo;
    5. import com.yeqifu.sys.constast.SysConstast;
    6. import com.yeqifu.sys.utils.AppFileUtils;
    7. import com.yeqifu.sys.utils.DataGridView;
    8. import com.yeqifu.sys.utils.ResultObj;
    9. import org.springframework.beans.factory.annotation.Autowired;
    10. import org.springframework.web.bind.annotation.RequestMapping;
    11. import org.springframework.web.bind.annotation.RestController;
    12. import java.util.Date;
    13. /**
    14. * 车辆管理控制器
    15. */
    16. @RestController
    17. @RequestMapping("car")
    18. public class CarController {
    19. @Autowired
    20. private ICarService carService;
    21. /**
    22. * 加载车辆列表返回DataGridView
    23. * @param carVo
    24. * @return
    25. */
    26. @RequestMapping("loadAllCar")
    27. public DataGridView loadAllCar(CarVo carVo){
    28. return this.carService.queryAllCar(carVo);
    29. }
    30. /**
    31. * 添加一个车辆
    32. * @param carVo
    33. * @return
    34. */
    35. @RequestMapping("addCar")
    36. public ResultObj addCar(CarVo carVo){
    37. try{
    38. carVo.setCreatetime(new Date());
    39. //如果不是默认图片就去掉图片的_temp的后缀
    40. if(!carVo.getCarimg().equals(SysConstast.DEFAULT_CAR_IMG)){
    41. String filePath =AppFileUtils.updateFileName(carVo.getCarimg(), SysConstast.FILE_UPLOAD_TEMP);
    42. carVo.setCarimg(filePath);
    43. }
    44. this.carService.addCar(carVo);
    45. return ResultObj.ADD_SUCCESS;
    46. }catch (Exception e){
    47. e.printStackTrace();
    48. return ResultObj.ADD_ERROR;
    49. }
    50. }
    51. /**
    52. * 修改一个车辆
    53. * @param carVo
    54. * @return
    55. */
    56. @RequestMapping("updateCar")
    57. public ResultObj updateCar(CarVo carVo){
    58. try{
    59. String carimg = carVo.getCarimg();
    60. if (carimg.endsWith(SysConstast.FILE_UPLOAD_TEMP)) {
    61. String filePath =AppFileUtils.updateFileName(carVo.getCarimg(), SysConstast.FILE_UPLOAD_TEMP);
    62. carVo.setCarimg(filePath);
    63. //把原来的删除
    64. Car car = this.carService.queryCarByCarNumber(carVo.getCarnumber());
    65. AppFileUtils.removeFileByPath(car.getCarimg());
    66. }
    67. this.carService.updateCar(carVo);
    68. return ResultObj.UPDATE_SUCCESS;
    69. }catch (Exception e){
    70. e.printStackTrace();
    71. return ResultObj.UPDATE_ERROR;
    72. }
    73. }
    74. /**
    75. * 删除一个车辆
    76. * @param carVo
    77. * @return
    78. */
    79. @RequestMapping("deleteCar")
    80. public ResultObj deleteCar(CarVo carVo){
    81. try {
    82. this.carService.deleteCar(carVo.getCarnumber());
    83. return ResultObj.DELETE_SUCCESS;
    84. }catch (Exception e){
    85. e.printStackTrace();
    86. return ResultObj.DELETE_ERROR;
    87. }
    88. }
    89. /**
    90. * 批量删除车辆
    91. * @param carVo
    92. * @return
    93. */
    94. @RequestMapping("deleteBatchCar")
    95. public ResultObj deleteBatchCar(CarVo carVo){
    96. try{
    97. this.carService.deleteBatchCar(carVo.getIds());
    98. return ResultObj.DELETE_SUCCESS;
    99. }catch (Exception e){
    100. e.printStackTrace();
    101. return ResultObj.DELETE_ERROR;
    102. }
    103. }
    104. }

    检查单管理的控制器

    1. package com.yeqifu.bus.controller;
    2. import com.yeqifu.bus.domain.Rent;
    3. import com.yeqifu.bus.service.ICheckService;
    4. import com.yeqifu.bus.service.IRentService;
    5. import com.yeqifu.bus.vo.CheckVo;
    6. import com.yeqifu.sys.utils.DataGridView;
    7. import com.yeqifu.sys.utils.ResultObj;
    8. import org.springframework.beans.factory.annotation.Autowired;
    9. import org.springframework.web.bind.annotation.RequestMapping;
    10. import org.springframework.web.bind.annotation.RestController;
    11. import java.util.Date;
    12. import java.util.Map;
    13. /**
    14. * 检查单管理的控制器
    15. */
    16. @RestController
    17. @RequestMapping("check")
    18. public class CheckController {
    19. @Autowired
    20. private IRentService rentService;
    21. @Autowired
    22. private ICheckService checkService;
    23. /**
    24. * 根据出租单号查询出租单信息
    25. * @param rentid
    26. * @return
    27. */
    28. @RequestMapping("checkRentExist")
    29. public Rent checkRentExist(String rentid){
    30. //出租单号不存在,返回一个null,出租单号存在,返回一个rent对象
    31. Rent rent = rentService.queryRentByRentId(rentid);
    32. return rent;
    33. }
    34. /**
    35. * 根据出租单号加载检查单的表单数据
    36. * @param rentid
    37. * @return
    38. */
    39. @RequestMapping("initCheckFormData")
    40. public Map initCheckFormData(String rentid){
    41. return this.checkService.initCheckFormData(rentid);
    42. }
    43. /**
    44. * 保存检查单数据
    45. * @param checkVo
    46. * @return
    47. */
    48. @RequestMapping("saveCheck")
    49. public ResultObj saveCheck(CheckVo checkVo){
    50. try{
    51. checkVo.setCreatetime(new Date());
    52. this.checkService.addCheck(checkVo);
    53. return ResultObj.ADD_SUCCESS;
    54. }catch (Exception e){
    55. e.printStackTrace();
    56. return ResultObj.ADD_ERROR;
    57. }
    58. }
    59. /**
    60. * 查询所有检查单
    61. * @param checkVo
    62. * @return
    63. */
    64. @RequestMapping("loadAllCheck")
    65. public DataGridView loadAllCheck(CheckVo checkVo){
    66. return this.checkService.queryAllCheck(checkVo);
    67. }
    68. /**
    69. * 删除一个检查单
    70. * @param checkVo
    71. * @return
    72. */
    73. @RequestMapping("deleteCheck")
    74. public ResultObj deleteCheck(CheckVo checkVo){
    75. try{
    76. this.checkService.deleteCheck(checkVo);
    77. return ResultObj.DELETE_SUCCESS;
    78. }catch (Exception e){
    79. e.printStackTrace();
    80. return ResultObj.DELETE_ERROR;
    81. }
    82. }
    83. /**
    84. * 批量删除检查单
    85. * @return
    86. */
    87. @RequestMapping("deleteBatchCheck")
    88. public ResultObj deleteBatchCheck(CheckVo checkVo){
    89. try{
    90. this.checkService.deleteBatchCheck(checkVo.getIds());
    91. return ResultObj.DELETE_SUCCESS;
    92. }catch (Exception e){
    93. e.printStackTrace();
    94. return ResultObj.DELETE_ERROR;
    95. }
    96. }
    97. /**
    98. * 更新检查单
    99. * @param checkVo
    100. * @return
    101. */
    102. @RequestMapping("updateCheck")
    103. public ResultObj updateCheck(CheckVo checkVo){
    104. try {
    105. this.checkService.updateCheck(checkVo);
    106. return ResultObj.UPDATE_SUCCESS;
    107. }catch (Exception e){
    108. e.printStackTrace();
    109. return ResultObj.UPDATE_ERROR;
    110. }
    111. }
    112. }

    客户管理的控制器

    1. package com.yeqifu.bus.controller;
    2. import com.yeqifu.bus.service.ICustomerService;
    3. import com.yeqifu.sys.utils.DataGridView;
    4. import com.yeqifu.sys.utils.ResultObj;
    5. import com.yeqifu.bus.vo.CustomerVo;
    6. import org.springframework.beans.factory.annotation.Autowired;
    7. import org.springframework.web.bind.annotation.RequestMapping;
    8. import org.springframework.web.bind.annotation.RestController;
    9. import java.util.Date;
    10. /**
    11. * 客户管理的控制器
    12. */
    13. @RestController //以json形式响应数据
    14. @RequestMapping("customer")
    15. public class CustomerController {
    16. @Autowired
    17. private ICustomerService customerService;
    18. /**
    19. * 加载客户列表返回DataGridView
    20. * @param customerVo
    21. * @return
    22. */
    23. @RequestMapping("loadAllCustomer")
    24. public DataGridView loadAllCustomer(CustomerVo customerVo){
    25. return this.customerService.queryAllCustomer(customerVo);
    26. }
    27. /**
    28. * 添加一个客户
    29. * @param customerVo
    30. * @return
    31. */
    32. @RequestMapping("addCustomer")
    33. public ResultObj addCustomer(CustomerVo customerVo){
    34. try{
    35. customerVo.setCreatetime(new Date());
    36. this.customerService.addCustomer(customerVo);
    37. return ResultObj.ADD_SUCCESS;
    38. }catch (Exception e){
    39. e.printStackTrace();
    40. return ResultObj.ADD_ERROR;
    41. }
    42. }
    43. /**
    44. * 修改一个客户
    45. * @param customerVo
    46. * @return
    47. */
    48. @RequestMapping("updateCustomer")
    49. public ResultObj updateCustomer(CustomerVo customerVo){
    50. try{
    51. this.customerService.updateCustomer(customerVo);
    52. return ResultObj.UPDATE_SUCCESS;
    53. }catch (Exception e){
    54. e.printStackTrace();
    55. return ResultObj.UPDATE_ERROR;
    56. }
    57. }
    58. /**
    59. * 删除一个客户
    60. * @param customerVo
    61. * @return
    62. */
    63. @RequestMapping("deleteCustomer")
    64. public ResultObj deleteCustomer(CustomerVo customerVo){
    65. try {
    66. this.customerService.deleteCustomer(customerVo.getIdentity());
    67. return ResultObj.DELETE_SUCCESS;
    68. }catch (Exception e){
    69. e.printStackTrace();
    70. return ResultObj.DELETE_ERROR;
    71. }
    72. }
    73. /**
    74. * 批量删除客户
    75. * @param customerVo
    76. * @return
    77. */
    78. @RequestMapping("deleteBatchCustomer")
    79. public ResultObj deleteBatchCustomer(CustomerVo customerVo){
    80. try{
    81. this.customerService.deleteBatchCustomer(customerVo.getIds());
    82. return ResultObj.DELETE_SUCCESS;
    83. }catch (Exception e){
    84. e.printStackTrace();
    85. return ResultObj.DELETE_ERROR;
    86. }
    87. }
    88. }

    汽车出租管理的控制器

    1. package com.yeqifu.bus.controller;
    2. import com.yeqifu.bus.domain.Customer;
    3. import com.yeqifu.bus.service.ICustomerService;
    4. import com.yeqifu.bus.service.IRentService;
    5. import com.yeqifu.bus.vo.RentVo;
    6. import com.yeqifu.sys.constast.SysConstast;
    7. import com.yeqifu.sys.domain.User;
    8. import com.yeqifu.sys.utils.DataGridView;
    9. import com.yeqifu.sys.utils.RandomUtils;
    10. import com.yeqifu.sys.utils.ResultObj;
    11. import com.yeqifu.sys.utils.WebUtils;
    12. import org.springframework.beans.factory.annotation.Autowired;
    13. import org.springframework.web.bind.annotation.RequestMapping;
    14. import org.springframework.web.bind.annotation.RestController;
    15. import java.util.Date;
    16. /**
    17. * 汽车出租管理的控制器
    18. */
    19. @RestController
    20. @RequestMapping("rent")
    21. public class RentController {
    22. @Autowired
    23. private IRentService rentService;
    24. @Autowired
    25. private ICustomerService customerService;
    26. /**
    27. * 检查身份证号是否存在
    28. * @param rentVo
    29. * @return
    30. */
    31. @RequestMapping("checkCustomerExist")
    32. public ResultObj checkCustomerExist(RentVo rentVo){
    33. Customer customer = customerService.queryCustomerByIdentity(rentVo.getIdentity());
    34. if (null!=customer){
    35. return ResultObj.STATUS_TRUE;
    36. }else {
    37. return ResultObj.STATUS_FALSE;
    38. }
    39. }
    40. /**
    41. * 初始化添加出租单的表单的数据
    42. * @param rentVo
    43. * @return
    44. */
    45. @RequestMapping("initRentFrom")
    46. public RentVo initRentFrom(RentVo rentVo){
    47. //生成出租单号
    48. rentVo.setRentid(RandomUtils.createRandomStringUseTime(SysConstast.CAR_ORDER_CZ));
    49. //设置起租时间
    50. rentVo.setBegindate(new Date());
    51. //设置操作员
    52. User user =(User) WebUtils.getHttpSession().getAttribute("user");
    53. rentVo.setOpername(user.getRealname());
    54. return rentVo;
    55. }
    56. /**
    57. * 保存出租单信息
    58. * @param rentVo
    59. * @return
    60. */
    61. @RequestMapping("saveRent")
    62. public ResultObj saveRent(RentVo rentVo){
    63. try {
    64. //设置创建时间
    65. rentVo.setCreatetime(new Date());
    66. //设置归还状态
    67. rentVo.setRentflag(SysConstast.RENT_BACK_FALSE);
    68. //保存
    69. this.rentService.addRent(rentVo);
    70. return ResultObj.ADD_SUCCESS;
    71. }catch (Exception e){
    72. e.printStackTrace();
    73. return ResultObj.ADD_ERROR;
    74. }
    75. }
    76. /**
    77. * 删除出租单信息
    78. * @param rentVo
    79. * @return
    80. */
    81. @RequestMapping("deleteRent")
    82. public ResultObj deleteRent(RentVo rentVo){
    83. try {
    84. //删除
    85. this.rentService.deleteRent(rentVo.getRentid());
    86. return ResultObj.DELETE_SUCCESS;
    87. }catch (Exception e){
    88. e.printStackTrace();
    89. return ResultObj.DELETE_ERROR;
    90. }
    91. }
    92. /**
    93. * 修改出租单信息
    94. * @param rentVo
    95. * @return
    96. */
    97. @RequestMapping("updateRent")
    98. public ResultObj updateRent(RentVo rentVo){
    99. try {
    100. //修改
    101. this.rentService.updateRent(rentVo);
    102. return ResultObj.UPDATE_SUCCESS;
    103. }catch (Exception e){
    104. e.printStackTrace();
    105. return ResultObj.UPDATE_ERROR;
    106. }
    107. }
    108. /******************出租单管理*******************/
    109. /**
    110. * 查询
    111. */
    112. @RequestMapping("loadAllRent")
    113. public DataGridView loadAllRent(RentVo rentVo){
    114. return this.rentService.queryAllRent(rentVo);
    115. }
    116. }

    如果也想学习本系统,下面领取。关注并回复:013ssm 

  • 相关阅读:
    JAVA毕设项目商店管理系统演示录像(java+VUE+Mybatis+Maven+Mysql)
    [附源码]Python计算机毕业设计Django项目管理系统的专家评审模块
    蓝牙耳机热销榜是哪些?盘点性价比蓝牙耳机排行榜
    系统架构设计师(第二版)学习笔记----计算机语言
    如何在 CentOS 8 上安装 OpenCV?
    Spring整合MyBatis
    无线WiFi安全渗透与攻防(N.3)WPA破解-创建Hash-table加速并用Cowpatty破解
    IC工程师入门必学,Verilog零基础入门教程
    Marin说PCB之封装设计系列---(02)--异形焊盘的封装设计总结
    ARM蜂鸣器,风扇,马达
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/126798073