基于SSM+layui【爱车汽车租赁管理系统】附源码+论文

简介: 基于SSM+layui【爱车汽车租赁管理系统】附源码+论文

前言介绍:

愚被认为是"黄金产业"的汽车租赁业,在我国的发展并不令人满意且被视为高风险行业.具体表现为汽车租赁企业规模偏小、服务水平不高、发展环境较差等问题.面临世界汽车租赁业巨头进入我国市场的巨大竞争压力,汽车租赁业应加强和汽车生产企业的相互合作、提高汽车租赁企业的规模水平及服务质量等,使其健康、快速发展起来.


image.png


一、汽车租赁业发展缓慢的原因分析


1.一些地区对汽车租赁业采取了错误的限制性政策。一些地区错误地将汽车租赁与出租汽车等同起来,并按照出租汽车的管理办法,在规模上予以限制,如停止审批经营手续、征收高额费用等。从某种意义上讲,汽车租赁更是一种新型的商品流通方式,对其限制,就如同对汽车购买行为进行限制一样不可思议,最终结局是既增加了汽车租赁企业的运营成本,同时也非常不利于全国性汽车租赁网络的建设;从更深层次来讲,对我国汽车工业的发展也会产生一定的负面影响。


2.相关政策、法规尚未完善。汽车租赁业作为一个新兴行业,在其发展过程中不可避免地会遇到一些新情况、新问题,而有些问题按照原有法规和政策尚难以解决。例如:运营车辆不能跨地区经营使得异地还车、联网运营难以付诸实施;承租者发生交通事故及丢失、损坏车辆所造成的停运损失如何向租赁企业补偿?诸如此类问题等等。


3.信用评估、咨询体系尚不健全。用户信用状况的不明使得租赁公司在开展租赁业务时不得不小心谨慎,国内的汽车租赁企业对本应是消费主流的私人租车者和中小企业,既要求其提供招保、缴纳巨额押金,又要办理繁琐手续,人为地阻碍了汽车租赁的更快发展。


4.缺乏相应的社会保障和相关行业的配合。国内汽车生产厂家基本没有介入汽车租赁业,造成了汽车租赁企业前期投入过大,负担沉重,规模起点较低,普遍缺乏车辆更新能力。此外,金融、保险机构对汽车租赁企业的信贷、保险机制尚未健全,汽车租赁业难以引入金融、保险支持。


5.法制与道德环境不尽人意。汽车在我国还是一种贵重商品,一些不法分子恶意骗租车辆,给汽车租赁企业带来了极大的损失,而国内法制环境尚不健全。一方面,相关政策法规尚不完善,有关部门往往因缺乏执法依据,在对此类违法案件的处理、打击上缺乏力度,难以形成应有的法律威摄;另一方面,有法不依、执法不严、违法个究的司法腐败现象还在一定范围内存在,真正从根本上解决“骗租”、“骗盗”租赁车辆问题尚需时日。此外,一些承租人道德水准低下,偷拆、偷换车辆机件,人为损坏车辆,也给汽车租赁企业带来了不应有的损失。

系统设计:

该项目是SSM、layui开发的汽车租聘系统,下面做了功能和相关技术的描述,适合出入职场和即将进入职场的各位,如有问题欢迎留言。

汽车租赁系统总共分为两个大的模块,分别是系统模块,业务模块和统计模块。

1.系统模块只要是客户信息和车辆信息管理

2.业务模块主要是客户进行租车,归还车,保修单打印等

3.统计模块可以按时间对车辆,客户进行统计,以饼形图的形式展示

一运行环境

JDK8、Tomcat8、MySQL5.7、IntelliJ IDEA、Maven

功能截图:

代码实现:

package com.alfred.bus.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


/**
 * 业务管理的路由跳转页面
 * @author Alfred
 * @date 2020/2/28 15:18
 */
@Controller
@RequestMapping("bus")
public class BusController {
    /**
     * 跳转到客户管理
     * @return
     */
    @RequestMapping("toCustomerManager")
    public String toCustomerManager(){
        return "business/customer/customerManager";
    }
    /**
     * 跳转到车辆管理
     * @return
     */
    @RequestMapping("toCarManager")
    public String toCarManager(){
        return "business/car/carManager";
    }

    /**
     * 跳转到车辆出租
     * @return
     */
    @RequestMapping("toRentCarManager")
    public String toRentCarManager(){
        return "business/rent/rentCarManager";
    }

    /**
     * 跳转到出租单管理的页面
     * @return
     */
    @RequestMapping("toRentManager")
    public String toRentManager(){
        return "business/rent/rentManager";
    }

    /**
     * 跳转到汽车入库管理的页面
     * @return
     */
    @RequestMapping("toCheckCarManager")
    public String toCheckCarManager(){
        return "business/check/checkCarManager";
    }

    /**
     * 跳转到检查单管理的页面
     * @return
     */
    @RequestMapping("toCheckManager")
    public String toCheckManager(){
        return "business/check/checkManager";
    }



}

package com.alfred.bus.controller;

import com.alfred.bus.domain.Car;
import com.alfred.bus.service.CarService;

import com.alfred.bus.vo.CarVo;
import com.alfred.sys.constant.SysConstant;
import com.alfred.sys.utils.AppFileUtils;
import com.alfred.sys.utils.DataGridView;
import com.alfred.sys.utils.ResultObj;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;

@RestController
@RequestMapping("car")
public class CarController {

    @Autowired
    private CarService carService;

    /**
     * 加载车辆列表返回DataGridView
     * @param carVo
     * @return
     */
    @RequestMapping("loadAllCar")
    public DataGridView loadAllCar(CarVo carVo){
        return this.carService.queryAllCar(carVo);
    }

    /**
     * 添加一个车辆
     * @param carVo
     * @return
     */
    @RequestMapping("addCar")
    public ResultObj addCar(CarVo carVo){
        try{
            carVo.setCreatetime(new Date());
            //如果不是默认图片就去掉图片的_temp的后缀
            if(!carVo.getCarimg().equals(SysConstant.DEFAULT_CAR_IMG)){
                String filePath = AppFileUtils.updateFileName(carVo.getCarimg(), SysConstant.FILE_UPLOAD_TEMP);
                carVo.setCarimg(filePath);
            }
            this.carService.addCar(carVo);
            return ResultObj.ADD_SUCCESS;
        }catch (Exception e){
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }

    /**
     * 修改一个车辆
     * @param carVo
     * @return
     */
    @RequestMapping("updateCar")
    public ResultObj updateCar(CarVo carVo){
        try{
            String carimg = carVo.getCarimg();
            if (carimg.endsWith(SysConstant.FILE_UPLOAD_TEMP)) {
                String filePath =AppFileUtils.updateFileName(carVo.getCarimg(), SysConstant.FILE_UPLOAD_TEMP);
                carVo.setCarimg(filePath);
                //把原来的删除
                Car car = this.carService.queryCarByCarNumber(carVo.getCarnumber());
                AppFileUtils.removeFileByPath(car.getCarimg());

            }
            this.carService.updateCar(carVo);
            return ResultObj.UPDATE_SUCCESS;
        }catch (Exception e){
            e.printStackTrace();
            return ResultObj.UPDATE_ERROR;
        }
    }

    /**
     * 删除一个车辆
     * @param carVo
     * @return
     */
    @RequestMapping("deleteCar")
    public ResultObj deleteCar(CarVo carVo){
        try {
            this.carService.deleteCar(carVo.getCarnumber());
            return ResultObj.DELETE_SUCCESS;
        }catch (Exception e){
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }

    /**
     * 批量删除车辆
     * @param carVo
     * @return
     */
    @RequestMapping("deleteBatchCar")
    public ResultObj deleteBatchCar(CarVo carVo){
        try{
            this.carService.deleteBatchCar(carVo.getIds());
            return ResultObj.DELETE_SUCCESS;
        }catch (Exception e){
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }

}

package com.alfred.bus.controller;

import com.alfred.bus.domain.Rent;
import com.alfred.bus.service.CheckService;
import com.alfred.bus.service.RentService;
import com.alfred.bus.vo.CheckVo;
import com.alfred.sys.utils.DataGridView;
import com.alfred.sys.utils.ResultObj;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;
import java.util.Map;

/**
 * @author Alfred
 * @date 2020/3/16 10:27
 */
@RestController
@RequestMapping("check")
public class CheckController {

    @Autowired
    private RentService rentService;

    @Autowired
    private CheckService checkService;

    @RequestMapping("checkRentExist")
    public Rent checkRentExist(String rentid){
        //出租单号不存在,返回一个null,出租单号存在,返回一个rent对象
        Rent rent = rentService.queryRentByRentId(rentid);
        return rent;
    }
    /**
     * 根据出租单号加载检查单的表单数据
     * @param rentid
     * @return
     */
    @RequestMapping("initCheckFormData")
    public Map<String,Object> initCheckFormData(String rentid){
        return this.checkService.initCheckFormData(rentid);
    }

    /**
     * 保存检查单数据
     * @param checkVo
     * @return
     */
    @RequestMapping("saveCheck")
    public ResultObj saveCheck(CheckVo checkVo){
        try{
            checkVo.setCreatetime(new Date());
            this.checkService.addCheck(checkVo);
            return ResultObj.ADD_SUCCESS;
        }catch (Exception e){
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }

    /**
     * 查询所有检查单
     * @param checkVo
     * @return
     */
    @RequestMapping("loadAllCheck")
    public DataGridView loadAllCheck(CheckVo checkVo){
        return this.checkService.queryAllCheck(checkVo);
    }

    /**
     * 删除一个检查单
     * @param checkVo
     * @return
     */
    @RequestMapping("deleteCheck")
    public ResultObj deleteCheck(CheckVo checkVo){
        try{
            this.checkService.deleteCheck(checkVo);
            return ResultObj.DELETE_SUCCESS;
        }catch (Exception e){
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }

    /**
     * 批量删除检查单
     * @return
     */
    @RequestMapping("deleteBatchCheck")
    public ResultObj deleteBatchCheck(CheckVo checkVo){
        try{
            this.checkService.deleteBatchCheck(checkVo.getIds());
            return ResultObj.DELETE_SUCCESS;
        }catch (Exception e){
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }

    /**
     * 更新检查单
     * @param checkVo
     * @return
     */
    @RequestMapping("updateCheck")
    public ResultObj updateCheck(CheckVo checkVo){
        try {
            this.checkService.updateCheck(checkVo);
            return ResultObj.UPDATE_SUCCESS;
        }catch (Exception e){
            e.printStackTrace();
            return ResultObj.UPDATE_ERROR;
        }
    }


}

论文参考:

目录
相关文章
|
14天前
|
存储 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(2)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
10 1
|
22天前
|
Java 应用服务中间件 数据库
SSM使用IDEA整合视频及源码配置文件
SSM使用IDEA整合视频及源码配置文件
22 1
|
13天前
|
安全 数据挖掘 测试技术
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(2)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
14 0
|
13天前
|
Java 关系型数据库 MySQL
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(1)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
14 0
|
13天前
|
Java 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(1)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
12 0
|
1月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的大学生校园兼职附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的大学生校园兼职附带文章和源代码部署视频讲解等
48 8
|
1月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的停车场微信小程序附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的停车场微信小程序附带文章和源代码部署视频讲解等
31 6
|
1月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的使命召唤游戏助手附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的使命召唤游戏助手附带文章和源代码部署视频讲解等
30 5
基于ssm+vue.js+uniapp小程序的使命召唤游戏助手附带文章和源代码部署视频讲解等
|
1月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的跑腿平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的跑腿平台附带文章和源代码部署视频讲解等
36 10
|
1月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的疫情期间学生请假与销假系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的疫情期间学生请假与销假系统附带文章和源代码部署视频讲解等
58 7