ssm汽车养护管理系统源码和论文

ssm汽车养护管理系统038


 开发工具:idea 
 数据库mysql5.7+
 数据库链接工具:navcat,小海豚等
  技术:ssm

开题报告内容:(研究现状、目的意义;基本内容、研究方法、参考文献等。) 

研究现状

国外的MIS系统大都经历了十几年甚至几十年的发展,在使用性和稳定性方面已经占有了很重要的地位,而本系统在使用方面力求简洁方便,比较适合汽修公司应用,操作方便简单。从国际的角度看,中国已经加入世界贸易组织,已经进入了竞争激烈的国际市场,为了使自己公司提高竞争力,国外的一些汽修公司早就认识到了效率的重要性,一些国外大型汽修公司也已经引进了汽车养护管理系统,而且本系统是在SSM框架下开发,代码可移植性较好,重用性很强,只需要更改少量代码即可以部署在不同的应用服务器上,在应用方面来说是比较方便的。

目的意义

以前汽车维修人员只是在汽车运输行业中从事后勤保障工作,随着我国经济的发展,汽车维修行业已经从原来的从属部门发展成了如今的功能齐备的独立企业。这种结构的转变,给私营汽修企业和个体汽修企业的发展带来了契机,私营企业和个体维修企业的加入也带动了整个汽修行业的整体水平的提高,推动了行业的迅速发展。开发本系统的目的主要是希望通过本系统帮助中小型汽车维修企业提高工作效率和管理水平,从而提高企业的竞争力和经济效益。汽车维修企业日常业务量大、工作内容繁杂、琐碎,传统的手工管理方法实现日常信息管理。使用本系统可以使企业的管理人员工作变得轻松,使管理人员切实感受到信息化建设带来的便利,切实感受到计算机技术、网络技术带来的快捷和智能。

基本内容

本系统以Java开发语言开发,Mysql为后台数据库,采用SSM(Spring+Spring MVC+MyBatis)三层架构网络。由Html来完成网站用户的接口(即界面), 逻辑处理和数据由Mysql来进行,由Mysql来完成数据的存放。

系统分为管理员与客户权限。管理员管理的内容包括员工管理,客户管理,员工出勤管理,零件分类管理,零件设备管理,维修管理。主要就是实现信息的增删改查操作。客户只能查看个人信息以及维修信息。

参考文献

[1]夏雨.汽车维修管理系统设计与实现[J].山东工业技术,2015(20):201.

[2]崔忠燕,高洁,张旭.汽车维修业务管理系统的设计[J].电脑知识与技术,2018,9(15):3472-3475.

[3]邹红霆.基于SSM框架的Web系统研究与应用[J].湖南理工学院学报(自然科学版),2017,30(01):39-43.

[4]汪君宇.基于JSP的Web应用软件开发技术分析[J].科技创新与应用,2018(16):158-160.

[5]赵钢.JSP Servlet+EJB的Web模式应用研究[J].电子设计工程,2018,21(13):47-49.

[6]肖英.解决JSP/Servlet开发中的中文乱码问题[J].科技传播,2017,(1)11-25.

[7]朱钧.基于角色的jsp通用权限系统设计与实现[D].山东大学,2019.

[8]康牧.JSP动态网站开发实用教程[M].清华大学出版社,2018.

[9]王建国.数据库设计在网站开发中的应用[J].山东农业工程学院学报,2017,34(04):158-159+164.

[10]张知青.基于关系数据库的查询方法及优化技术分析[J].煤炭技术,2015,31(05):218-220.

[11]陈志誉.Java工具及其调度方法研究[D].华南理工大学,2018.

[12]张孝祥,徐明华.JAVA基础与案例开发详解[M].清华大学出版社,2015.

[13]刘亚宾.精通Eclipse--JAVA技术大系[M].电子工业出版社,2015.

[14]曾志明.网站开发技术的比较研究[J].电脑知识与技术,2015,6(05):1075-1078.

[15]卫红春.信息系统分析与设计[M].北京:清华大学出版社,2016.

[16]于万波.网站开发与应用案例教程[M].清华大学出版社,2017.

[17]黎连业,王华,李淑春.软件测试与测试技术[M].清华大学出版社,2015.

package com.controller;import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.HttpServletRequest;import com.annotation.IgnoreAuth;
import com.entity.GuanliyuanEntity;
import com.service.TokenService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;import com.entity.GuanliyuanEntity;import com.service.GuanliyuanService;
import com.utils.PageUtils;
import com.utils.R;/*** 管理员表* 后端接口* @author* @email* @date 2021-02-24
*/
@RestController
@Controller
@RequestMapping("/guanliyuan")
public class GuanliyuanController {private static final Logger logger = LoggerFactory.getLogger(GuanliyuanController.class);@Autowiredprivate GuanliyuanService guanliyuanService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String role, HttpServletRequest request) {GuanliyuanEntity user = guanliyuanService.selectOne(new EntityWrapper<GuanliyuanEntity>().eq("account", username));if(user != null){if(!user.getRole().equals(role)){return R.error("权限不正常");}if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),user.getName(), "users", user.getRole());return R.ok().put("token", token);}else{return R.error("账号或密码或权限不对");}}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Integer id = (Integer)request.getSession().getAttribute("userId");GuanliyuanEntity user = guanliyuanService.selectById(id);return R.ok().put("data", user);}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody GuanliyuanEntity user){
//    	ValidatorUtils.validateEntity(user);if(guanliyuanService.selectOne(new EntityWrapper<GuanliyuanEntity>().eq("account", user.getAccount())) !=null) {return R.error("用户已存在");}guanliyuanService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){GuanliyuanEntity user = guanliyuanService.selectOne(new EntityWrapper<GuanliyuanEntity>().eq("account", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");guanliyuanService.update(user,null);return R.ok("密码已重置为:123456");}/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params){logger.debug("Controller:"+this.getClass().getName()+",page方法");PageUtils page = guanliyuanService.queryPage(params);return R.ok().put("data", page);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){logger.debug("Controller:"+this.getClass().getName()+",info方法");GuanliyuanEntity guanliyuan = guanliyuanService.selectById(id);if(guanliyuan!=null){return R.ok().put("data", guanliyuan);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody GuanliyuanEntity guanliyuan, HttpServletRequest request){logger.debug("Controller:"+this.getClass().getName()+",save");Wrapper<GuanliyuanEntity> queryWrapper = new EntityWrapper<GuanliyuanEntity>().eq("serial", guanliyuan.getSerial()).eq("name", guanliyuan.getName()).eq("account", guanliyuan.getAccount()).eq("password", guanliyuan.getPassword()).eq("age", guanliyuan.getAge()).eq("sex_types", guanliyuan.getSexTypes()).eq("mobile", guanliyuan.getMobile()).eq("address", guanliyuan.getAddress()).eq("role", guanliyuan.getRole());logger.info("sql语句:"+queryWrapper.getSqlSegment());GuanliyuanEntity guanliyuanEntity = guanliyuanService.selectOne(queryWrapper);if(guanliyuanEntity==null){guanliyuan.setRole("管理员");guanliyuanService.insert(guanliyuan);return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody GuanliyuanEntity guanliyuan, HttpServletRequest request){logger.debug("Controller:"+this.getClass().getName()+",update");//根据字段查询是否有相同数据Wrapper<GuanliyuanEntity> queryWrapper = new EntityWrapper<GuanliyuanEntity>().notIn("id",guanliyuan.getId()).eq("serial", guanliyuan.getSerial()).eq("name", guanliyuan.getName()).eq("account", guanliyuan.getAccount()).eq("password", guanliyuan.getPassword()).eq("age", guanliyuan.getAge()).eq("sex_types", guanliyuan.getSexTypes()).eq("mobile", guanliyuan.getMobile()).eq("address", guanliyuan.getAddress()).eq("role", guanliyuan.getRole());logger.info("sql语句:"+queryWrapper.getSqlSegment());GuanliyuanEntity guanliyuanEntity = guanliyuanService.selectOne(queryWrapper);if(guanliyuanEntity==null){guanliyuanService.updateById(guanliyuan);//根据id更新return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){logger.debug("Controller:"+this.getClass().getName()+",delete");guanliyuanService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

driver‘s license exam 4

driver‘s license exam 1_spencer_tseng的博客-CSDN博客 driver‘s license exam 2_spencer_tseng的博客-CSDN博客 driver‘s license exam 3_spencer_tseng的博客-CSDN博客 driver‘s license exam 4_spencer_tseng的博客-CSDN博客 car indicator light_spencer_tseng的博…

java八股文面试[数据结构]——ArrayList和LinkedList区别

ArrayList和LinkedList的异同 二者的线程都不安全&#xff0c;相对线程安全的Vector,执行效率高。此外&#xff0c;ArrayList时实现了基于动态数组的数据结构&#xff0c;LinkedList基于链表的数据结构&#xff0c;对于随机访问get和set&#xff0c;ArrayList觉得优于LinkedLis…

ubuntu上使用osg3.2+osgearth2.9

一、介绍 在ubuntu上使用osgearth加载三维数字地球&#xff0c;首先要有osg和osgearth的库&#xff0c;这些可以直接使用apt-get下载安装&#xff0c;但是版本有些老&#xff0c;如果需要新版本的就需要自己编译。 #查看现有版本 sudo apt-cache madison openscenegraph #安装…

C#实现简单TCP服务器和客户端网络编程

在C#中进行网络编程涉及许多类和命名空间&#xff0c;用于创建和管理网络连接、传输数据等。下面是一些主要涉及的类和命名空间&#xff1a; System.Net 命名空间&#xff1a;这个命名空间提供了大部分网络编程所需的类&#xff0c;包括&#xff1a; IPAddress&#xff1a;用于…

2023年高教社杯数学建模思路 - 复盘:人力资源安排的最优化模型

文章目录 0 赛题思路1 描述2 问题概括3 建模过程3.1 边界说明3.2 符号约定3.3 分析3.4 模型建立3.5 模型求解 4 模型评价与推广5 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 描述 …

第2篇:ESP32 helloword第一个程序示范点亮板载LED

1.选择ESP32开发板 2.寻找串口号&#xff0c;win10自动安装驱动 手动安装驱动参考&#xff1a; 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可…

ipad可以用别的品牌的手写笔吗?开学平价电容笔推荐

开学需要买什么呢&#xff1f;随着科技的不断进步&#xff0c;各种类型的iPad电容笔应运而生。一支好的电容笔&#xff0c;不仅能大大提高我们的工作效率&#xff0c;而且能大大提高我们的生产力。平替的这款电容笔&#xff0c;不管是在技术上&#xff0c;还是在品质上&#xf…

关于路由器和DNS解析的一些新理解

其实我本人对于交换机和路由器这些网络硬件是比较感兴趣的&#xff0c;也在一点一点的学习相关知识&#xff0c;每次解决一个问题&#xff0c;就让我对一些事情有新的思考。。 今天前台同事&#xff0c;的机器突然上不了网&#xff0c;&#xff0c;和领导一起去看了一波&#…

jmeter CSV 数据文件设置

创建一个CSV数据文件&#xff1a;使用任何文本编辑器创建一个CSV文件&#xff0c;将测试数据按照逗号分隔的格式写入文件中。例如&#xff1a; room_id,arrival_date,depature_date,bussiness_date,order_status,order_child_room_id,guest_name,room_price 20032,2023-8-9 14:…

C++--动态规划两个数组的dp问题

1.最长公共子序列 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串…

Unity 之NavMeshAgent 组件(导航和路径寻找的组件)

文章目录 **作用**&#xff1a;**属性和方法**&#xff1a;**用途**&#xff1a;**注意事项**&#xff1a; NavMeshAgent 是Unity引擎中用于导航和路径寻找的组件。它可以使游戏对象在场景中自动找到可行走的路径&#xff0c;并在避免障碍物的情况下移动到目标位置。 以下是关于…

在当今信息化社会中的安全大文件传输

随着科技的不断进步&#xff0c;数据已经成为各个领域和行业的宝贵财富。然而&#xff0c;随之而来的数据传输和交换问题也成为一个日益突出的挑战。在这篇文章中&#xff0c;我们将探讨在当今信息化社会中的安全大文件传输的重要性&#xff0c;以及如何应对传统传输方式所面临…

穿起“新架构”的舞鞋,跳一支金融数字化转型的华尔兹

华尔兹&#xff0c;是男女两位舞者&#xff0c;通过形体的控制&#xff0c;舞步技巧的发挥&#xff0c;完美配合呈现而出的一种舞蹈形式。华尔兹舞姿&#xff0c;如行云流水、潇洒自如、飘逸优美&#xff0c;素有“舞中皇后”的美称。 在跳华尔兹的时候&#xff0c;如果舞者双…

SQL 盲注

问题描述&#xff1a; 解决方案&#xff1a; 通过建立过滤器方法 添加拦截器&#xff1a; web.xml 文件配置拦截器 <filter><filter-name>sqlFilter</filter-name><filter-class>com.fh.filter.SqlFilter</filter-class></filter> pack…

Python将网络文件下载到本地

Python将网络文件下载到本地 前言相关介绍Python将网络文件下载到本地 前言 由于本人水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。更多精彩内容&#xff0c;可点击进入Python日常小操作专栏、YOLO系列专栏、自然语言处理专栏或我的个人主页查看基于DETR的人脸伪…

【Git版本控制工具使用---讲解一】

Git版本控制工具使用 安装设置用户名签名和邮箱Git常用的命令 初始化本地库查看本地状态Git 命令添加暂存区提交本地库查看版本信息修改文件版本穿梭 安装 首先根据自身电脑的配置选择性的安装是32位的还是64位的Git版本控制工具 我这边安装的是64位的 以下是我安装的时候的过…

springboot2+redis 订阅发布,解决接收消息累计线程到内存溢出,使用自定义线程池接收消息

pom 添加redis <!-- redis 缓存操作 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 发布消息 import lombok.extern.slf4j.Slf4j; import o…

python 连接Redis 数据库

pip install redis python代码 import redis# 连接数据库 r redis.Redis(host192.168.56.15, port6379, db0)# 存储数据 #r.set(key, value) r.set(name, zaraNet)# 获取数据 value r.get(name) print(value)# 关闭连接&#xff08;可选&#xff09; r.close()

C# 工厂模式

一、概述 工厂模式&#xff08;Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;它提供了一种创建对象的最佳方式。在C#中&#xff0c;工厂模式通过定义一个公共接口或抽象类来创建对象&#xff0c;而具体的对象创建则由工厂类来实现。 工厂模式主要包含三个角色…