【计算机毕业设计】基于SpringBoot+Vue企业车辆管理系统设计与实现

目录

一、项目介绍 

二、项目主要技术 

三、系统体系结构

四、系统实现 

五、实现代码

一、项目介绍 

本系统采用Mysql数据库和java语言,SpringBoot框架进行开发而成,极大程度上的保证了系统的稳定性。管理人员可以管理个人中心、驾驶员管理、用户管理、车辆登记管理、维修信息管理、事故信息管理、违章信息管理、车辆运营管理、企业论坛、系统管理等进行管理。

二、项目主要技术 

开发语言:Java
 
使用框架:spring boot
 
前端技术:JavaScript、Vue 、css3
 
开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
 
数据库:MySQL 5.7/8.0
 
数据库管理工具:phpstudy/Navicat
 
JDK版本:jdk1.8
 
Maven: apache-maven 3.8.1-bin

三、系统体系结构

系统启动后,在登录界面,输入正确的账号密码,选择进入管理员界面、驾驶员界面或用户界面;系统登录结构图如图所示。 

管理员模块属于是网站的后台,进入之后有大量的管理员功能,管理员也可以使用其他用户模块的功能,为了维护网站的稳定与页面的布局,将管理员模块的功能详细化后可以使用系统管理对页面进行布局修改,可以发布公告提示用户规范,企业车辆管理系统总体结构图如图所示。 

四、系统实现 

系统首页界面

驾驶员详细页面 

车辆登记详细页面

后台登录界面 

驾驶员管理界面

车辆登记管理界面

违章信息管理界面 

五、实现代码

@RestController
@RequestMapping("/jiashiyuan")
public class JiashiyuanController {
    @Autowired
    private JiashiyuanService jiashiyuanService;
 
 
    
	@Autowired
	private TokenService tokenService;
	
	/**
	 * 登录
	 */
	@IgnoreAuth
	@RequestMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		JiashiyuanEntity u = jiashiyuanService.selectOne(new EntityWrapper<JiashiyuanEntity>().eq("gonghao", username));
		if(u==null || !u.getMima().equals(password)) {
			return R.error("账号或密码不正确");
		}
		
		String token = tokenService.generateToken(u.getId(), username,"jiashiyuan",  "驾驶员" );
		return R.ok().put("token", token);
	}
 
	
	/**
     * 注册
     */
	@IgnoreAuth
    @RequestMapping("/register")
    public R register(@RequestBody JiashiyuanEntity jiashiyuan){
    	//ValidatorUtils.validateEntity(jiashiyuan);
    	JiashiyuanEntity u = jiashiyuanService.selectOne(new EntityWrapper<JiashiyuanEntity>().eq("gonghao", jiashiyuan.getGonghao()));
		if(u!=null) {
			return R.error("注册用户已存在");
		}
		Long uId = new Date().getTime();
		jiashiyuan.setId(uId);
        jiashiyuanService.insert(jiashiyuan);
        return R.ok();
    }
 
	
	/**
	 * 退出
	 */
	@RequestMapping("/logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        JiashiyuanEntity u = jiashiyuanService.selectById(id);
        return R.ok().put("data", u);
    }
    
    /**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	JiashiyuanEntity u = jiashiyuanService.selectOne(new EntityWrapper<JiashiyuanEntity>().eq("gonghao", username));
    	if(u==null) {
    		return R.error("账号不存在");
    	}
        u.setMima("123456");
        jiashiyuanService.updateById(u);
        return R.ok("密码已重置为:123456");
    }
 
 
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,JiashiyuanEntity jiashiyuan,
		HttpServletRequest request){
        EntityWrapper<JiashiyuanEntity> ew = new EntityWrapper<JiashiyuanEntity>();
 
		PageUtils page = jiashiyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiashiyuan), params), params));
 
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,JiashiyuanEntity jiashiyuan, 
		HttpServletRequest request){
        EntityWrapper<JiashiyuanEntity> ew = new EntityWrapper<JiashiyuanEntity>();
 
		PageUtils page = jiashiyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiashiyuan), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( JiashiyuanEntity jiashiyuan){
       	EntityWrapper<JiashiyuanEntity> ew = new EntityWrapper<JiashiyuanEntity>();
      	ew.allEq(MPUtil.allEQMapPre( jiashiyuan, "jiashiyuan")); 
        return R.ok().put("data", jiashiyuanService.selectListView(ew));
    }
 
	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(JiashiyuanEntity jiashiyuan){
        EntityWrapper< JiashiyuanEntity> ew = new EntityWrapper< JiashiyuanEntity>();
 		ew.allEq(MPUtil.allEQMapPre( jiashiyuan, "jiashiyuan")); 
		JiashiyuanView jiashiyuanView =  jiashiyuanService.selectView(ew);
		return R.ok("查询驾驶员成功").put("data", jiashiyuanView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        JiashiyuanEntity jiashiyuan = jiashiyuanService.selectById(id);
        return R.ok().put("data", jiashiyuan);
    }
 
    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        JiashiyuanEntity jiashiyuan = jiashiyuanService.selectById(id);
        return R.ok().put("data", jiashiyuan);
    }
    
 
 
 
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody JiashiyuanEntity jiashiyuan, HttpServletRequest request){
    	jiashiyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(jiashiyuan);
    	JiashiyuanEntity u = jiashiyuanService.selectOne(new EntityWrapper<JiashiyuanEntity>().eq("gonghao", jiashiyuan.getGonghao()));
		if(u!=null) {
			return R.error("用户已存在");
		}
		jiashiyuan.setId(new Date().getTime());
        jiashiyuanService.insert(jiashiyuan);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody JiashiyuanEntity jiashiyuan, HttpServletRequest request){
    	jiashiyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(jiashiyuan);
    	JiashiyuanEntity u = jiashiyuanService.selectOne(new EntityWrapper<JiashiyuanEntity>().eq("gonghao", jiashiyuan.getGonghao()));
		if(u!=null) {
			return R.error("用户已存在");
		}
		jiashiyuan.setId(new Date().getTime());
        jiashiyuanService.insert(jiashiyuan);
        return R.ok();
    }
 
 
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    @Transactional
    public R update(@RequestBody JiashiyuanEntity jiashiyuan, HttpServletRequest request){
        //ValidatorUtils.validateEntity(jiashiyuan);
        jiashiyuanService.updateById(jiashiyuan);//全部更新
        return R.ok();
    }
 
 
 
    
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        jiashiyuanService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
 
 
}

 

  此源码非开源,若需要此源码可扫码添加微信或者qq:2214904953进行咨询!

2600多套项目欢迎咨询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/590504.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FR-TSN4206获得“时间敏感网络产业链名录计划”测试认证证书,TSN交换机助力智能工业发展

TSN技术&#xff0c;即时间敏感网络技术&#xff0c;已成为智能工业、自动驾驶等领域的核心。它通过时钟同步、数据调度等功能&#xff0c;确保低延迟、高可靠性的数据传输。 为推动TSN技术在我国的发展&#xff0c;工业互联网产业联盟联合多家单位启动了“时间敏感网络产业链名…

AI制作《曼达洛人4》电影宣传片

AI制作《曼达洛人》电影宣传片 Bounty hunters, legends, and a galaxy in turmoil. The Mandalorian rises. 赏金猎人、传奇和混乱的星系。曼达洛人崛起。 In the shadows of the Outer Rim, a lone warrior walks the path of honor. 在外围边缘的阴影中&#xff0c;一名独…

esp32-cam 2. python opencv 拉取摄像头内容

0. 环境 - win10 python3 - pycharm - esp32-cam http://192.168.4.1 1. 创建工程 File -> Create Project -> -> Location: E:\Workspaces\PycharmProjects\esp32cam_opencv -> Create 2. opencv hello 2.1 添加脚本 File -> New -> Python f…

【跟马少平老师学AI】-【神经网络是怎么实现的】(五)梯度消失问题

一句话归纳&#xff1a; 1&#xff09;用sigmoid激活函数时&#xff0c;BP算法更新公式为&#xff1a; 用sigmoid函数&#xff0c;O取值为0~1&#xff0c;O(1-O)最大值为0.25&#xff0c;若神经网络层数多&#xff0c;则会造成更新项趋近于0&#xff0c;称为梯度消失。 2&#…

我使用Python开发网站的3个主要框架库,值得推荐

虽然Python不是主打后端开发的语言&#xff0c;但目前市场仍有很多大公司在用Python开发网站和软件&#xff0c;比如Youtube、Reddit、Dropbox、Douban等。 目前Python生态有几个受欢迎的后端框架&#xff0c;主要是Django、Flask、FastAPI&#xff0c;咱们如果做Python后端开…

【C++】1.贪心算法:零钱兑换的奇妙之旅

欢迎来CILMY23的博客 本篇主题为 贪心算法&#xff1a;零钱兑换的奇妙之旅 个人主页&#xff1a;CILMY23-CSDN博客 个人专栏&#xff1a; Python | C | C语言 | 数据结构与算法 上一篇C博客&#xff1a;掌握C函数重载和引用开启代码优化的新篇章 感谢观看&#xff0c;支…

vue2项目webpack3.x打包文件分割优化加载

vue2项目webpack3.x打包文件分割优化加载 0. 项目目录和依赖信息1. 开启 gzip&#xff08;建议&#xff09;2. vue2项目配置懒加载&#xff08;建议&#xff09;3. 拆分 vendor 包注意&#xff1a;webpack3使用CommonsChunkPlugin实现 本文使用 3 种方案进行叠加优化 优先级按以…

05.Git标签管理

Git标签管理 #创建一个标签 [rootgitlab ~/demo]#git tag -a "v1.1" -m "first" [rootgitlab ~/demo]# git tag v1.1 #查看标签信息 [rootgitlab ~/demo]# git show v1.1 tag v1.1 Tagger: quyunlong <quyunlongfoxmail.com> Date: Tue Oct 18…

httpcanary抓包某游戏思路及教程[第1期]

游戏介绍&#xff1a; 这期在线读档0花购买教程&#xff0c;存档版教程。下一期在线购买无限鲜花累计充值安卓全系统适配修改教程。 小白勿入&#xff0c;技术流资料 网盘自动获取 链接&#xff1a;https://pan.baidu.com/s/1lpzKPim76qettahxvxtjaQ?pwd0b8x 提取码&#x…

数据挖掘实战-基于CNN深度学习算法构建英文文本分类模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

JZ69跳台阶

&#x1f600;前言 青蛙跳台阶是一个经典的问题&#xff0c;它描述了一只青蛙每次可以跳上1级台阶或者2级台阶&#xff0c;问跳上一个n级的台阶有多少种跳法。这个问题看似简单&#xff0c;实则蕴含了一定的数学思维和递推关系。在本文中&#xff0c;我们将通过分析问题的特性和…

python实现验证码-图片类型

1 utils.py import randomdef get_random_code():code for i in range(5):# 随机生成大写字母upper_char chr(random.randint(65, 90))lower_char chr(random.randint(97, 122))num_char str(random.randint(0, 9))res random.choice([upper_char, lower_char, num_char]…

merge and rebase

文章目录 什么是merge什么是rebasemerge和rebase的区别操作执行git merge操作git rebase操作冲突解决解决冲突的步骤 Git Merge 和 Git Rebase 都是用于集成来自不同分支的修改的 Git 命令。 什么是merge Git Merge 是将一个分支的改动合并到另一个分支的方式。当你执行一个 m…

牛客热题:链表中环的入口结点

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;**链表中环的入口结点**题目链接…

搭建并配置HTTPD文件服务及访问权限控制

一、安装HTTPD服务 yum -y install httpd 查看安装版本 httpd -v 二、HTTPD服务目录结构 conf: 存放主要的配置文件&#xff0c;如httpd.conf。 conf.d: 包含额外的配置文件&#xff0c;可以通过主配置文件包含进来。 conf.modules.d: 包含Apache模块的配置文件。 logs: 存放…

【python】python新闻数据抓取情感分析可视化(源码+数据)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

ArmSoM-Sige5 RK3576开发板 正式发布!

简介​ ArmSoM-Sige5 采用Rockchip RK3576第二代8nm高性能AIOT平台&#xff0c;6 TOPS算力NPU&#xff0c;最大可配16GB大内存。支持8K视频编解码&#xff0c;拥有丰富的接口&#xff0c;支持双千兆网口&#xff0c;WiFi6 & BT5和多种视频输出。支持多种操作系统&#xff…

如何基于nginx搭建https网站

华子目录 使用nginx的http_ssl模块建立加密传输的网站查看配置文件ssl配置文件的主要参数实验&#xff1a;搭建nginxssl加密认证的web服务器 使用nginx的http_ssl模块建立加密传输的网站 查看 [rootserver ~]# nginx -V #查看是否有--with-http_ssl_module模块&#xff0c;如…

MIPS32 指令架构

指令格式 R 类型 说明&#xff1a; 用于寄存器和寄存器操作 参数说明: Op: 指令操作码Rs: 第一个源操作数寄存器号&#xff0c;参与运算使用Rd: 目的操作数寄存器号&#xff0c;保存结果使用Shamt: 位偏移量&#xff0c;仅在位移指令使用&#xff0c;在此直接置0Func: 指令函…

uni-app scroll-view隐藏滚动条的小细节 兼容主流浏览器

开端 想写个横向滚动的列表适配浏览器&#xff0c;主要就是隐藏一下滚动条在手机上美观一点。 但是使用uni-app官方文档建议的::-webkit-scrollbar在目标标签时发现没生效。 .scroll-view_H::-webkit-scrollbar{display: none; }解决 F12看了一下&#xff0c;原来编译到浏览…