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

news2024/12/28 17:38:15

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);

    @Autowired
    private GuanliyuanService guanliyuanService;


    @Autowired
    private 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.coloradmin.cn/o/911249.html

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

相关文章

常见前端面试之VUE面试题汇总一

1. Vue 的基本原理 当 一 个 Vue 实 例 创 建 时 &#xff0c; Vue 会 遍 历 data 中 的 属 性 &#xff0c; 用 Object.defineProperty &#xff08; vue3.0 使 用 proxy&#xff09; 将 它 们 转 为 getter/setter&#xff0c;并且在内部追踪相关依赖&#xff0c;在属性被访…

百度工程师浅析解码策略

作者 | Jane 导读 生成式模型的解码方法主要有2类&#xff1a;确定性方法&#xff08;如贪心搜索和波束搜索&#xff09;和随机方法。确定性方法生成的文本通常会不够自然&#xff0c;可能存在重复或过于简单的表达。而随机方法在解码过程中引入了随机性&#xff0c;以便生成更…

idea插件grep console最佳实践

首发博客地址 https://blog.zysicyj.top/ 参考博客&#xff1a;https://blog.csdn.net/ayunnuo/article/details/123997304 效果 配置 具体颜色 日志级别前景色背景色Error#FF0000#370000Warn#FFC033#1A0037Info#00FFF3无Debug#808080无 本文由 mdnice 多平台发布

python schedule库使用教程

schedule 是一个 Python 库&#xff0c;用于在指定的时间间隔或特定时间点执行任务。它可以帮助你创建定时任务&#xff0c;例如定时运行函数、脚本等。以下是一个简单的 schedule 库的使用教程。 安装 首先&#xff0c;你需要安装 schedule 库。你可以使用以下命令通过 pip …

ABBYY FindReader2024免费版电脑PDF格式扫描软件

在日常工作和生活中&#xff0c;我们有时需要将各种格式的文件转换为PDF格式&#xff0c;也可能需要将纸质文件扫描成PDF文档。今天要和大家分享的是PDF扫描软件哪个好&#xff0c;如何把多个扫描件合成一个PDF。 PDF作为目前主流的文件格式之一&#xff0c;在日常生活中我们需…

解决npm安装依赖失败,node和node-sass版本不匹配的问题

npm安装依赖报错&#xff1a; npm ERR! cb() never called! npm ERR! This is an error with npm itself. 一. 问题描述 用npm安装依赖报错&#xff1a; npm ERR! cb() never called! npm ERR! This is an error with npm itself. Please report this error at: npm ERR! …

记录一次wordpress项目的发布过程

背景&#xff1a;发布一套已完成的代码到线上&#xff0c;有完整的代码包&#xff0c;sql文件&#xff0c;环境是linux 宝塔。无wordpress相关经验。 过程&#xff1a;正常的发布代码 问题1&#xff1a;访问自己的域名后跳转到别的域名。 解决&#xff1a; 修改数据表wp_optio…

YOLOv8改进——引入可变形卷积DCNv3

YOLOv8 详解 ✨✨✨YOLOv8详解 【网络结构代码实操】 可变形卷积DCNv1 & DCNv2 ✨✨✨论文及代码详解——可变形卷积&#xff08;DCNv1&#xff09; ✨✨✨论文及代码详解——可变形卷积&#xff08;DCNv2&#xff09; DCNv3 是InternImage中提出的&#xff0c;DCNv3在DCNv…

centos7.6 firewalld防火墙配置

1、查看系统版本 cat /etc/redhat-release 2、查看防火墙运行状态 systemctl status firewalld 此处可以看到防火墙已开启。 3、关闭开机自启动防火墙 systemctl disable firewalld.service 4、启动防火墙并查看状态&#xff0c;系统默认 22 端口是开启的。 systemctl start f…

HCIP学习--企业网三层架构实验

一、实验拓扑 二、实验要求 内网IP地址172.16.0.0/16合理分配 SW1/2之间互为备份 VRBP/STP/LANTRUNK均使用 所有PC通过DHCP获取ip地址 三、实验步骤 首先思考进行IP地址的规划 配置eht-trunk [sw1]interface Eth-Trunk 0 [sw1-Eth-Trunk0]q [sw1-GigabitEthernet0/0/1]i…

魏副业而战:她的闲鱼号被封了

我是魏哥&#xff0c;与其躺平&#xff0c;不如魏副业而战&#xff01; 社群小K的闲鱼号被封了。 什么原因呢&#xff1f; 卖书被举报了。 魏哥调侃说&#xff0c;别干了&#xff0c;放弃吧。 她不听&#xff0c;重新开搞…… 这就是真正的网络创业者该有的素养。 魏哥蛮…

安卓系列机型-禁止卸载某个APP 防止误卸载软件 无需root权限

安卓系列机型-禁止安装某软件 防止“沉迷游戏的小孩”操作解析_安卓机器的博客-CSDN博客 上一期讲了如何禁止安装某个app。今天讲下如何禁止卸载某app。正好相反的操作。任何操作有利有弊。主要看使用者如何对待使用。 &#x1f494;&#x1f494;&#x1f494;以腾讯的一款游…

Jenkins自动化部署Vue项目

1、新建item&#xff0c;选择 Freestyle project 2、源码管理选择git&#xff0c;输入git仓库地址和授权账号&#xff0c;并指明要部署的分支 3、构建选择 Execute shell&#xff0c;输入vue项目打包命令 命令示例&#xff1a; source /etc/profile node -v npm config set re…

内容分发网络CDN与应用程序交付网络ADN之间的异同

当您想要提高网站性能时&#xff0c;需要考虑许多不同的配置和设施&#xff0c;CDN和ADN是我们常遇见的几种选项之一。“CDN”指“内容分发网络”&#xff0c;而“ADN”指“应用程序交付网络”&#xff0c;但他们两者很容易被混淆&#xff0c;虽然它们的功能和作用都有较大差异…

​山东省图书馆典藏《乡村振兴战略下传统村落文化旅游设计》鲁图中大许少辉博士八一新书

​山东省图书馆《乡村振兴战略下传统村落文化旅游设计》鲁图中大许少辉博士八一新书

FastDFS与Nginx结合搭建文件服务器,并实现公网访问【内网穿透】

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

arthas-安装

window环境 在线安装 进入到对应的目录&#xff0c;cmd 下载jar包 curl -O https://arthas.aliyun.com/arthas-boot.jar 运行 java -jar arthas-boot.jar 该问题是没有运行的java项目&#xff0c;启动idea运行一个java项目&#xff0c;重新执行 选择要监听的端口号 输入ar…

【2023七夕】星河漫舞,七夕的璀璨之夜。分享:七夕表白的前端特效(附完整原代码+详细注释),情不知何起,却一往情深。愿天下有情人终成眷属

满山遍野你的脸庞,唯有遗忘是最漫长。 又一年的七夕了,今年,你还是孤单一人吗? … … 若是的话,咱们可是一个阵营的!!! 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌿[2] 2023年城市之星领跑者TOP1(哈尔滨)🌿…

快妥稳!户外拍摄,5G黑科技更给力!

随着新媒体时代的到来&#xff0c;“户外实景美学”已然成为影视创作打磨爆款作品、衍生荧屏效应的一把“杀手锏”。恢弘山川、烟雨江南、异域小城、古朴村落……从一方影棚再到“天然片场”&#xff0c;主打一个“身临其境”般更加真实的视听体验。 杭州浙文影业影视公司是一家…

SRM系统交货协同管理:优化供应链交付流程

供应链的交货协同管理对于企业的运作至关重要。为了实现高效、准时的交付&#xff0c;越来越多的企业开始采用供应关系管理SRM系统来优化交货协同管理。 一、什么是SRM系统交货协同管理&#xff1f; SRM系统交货协同管理是指利用SRM系统来协调和管理供应链中各个参与方在交货过…