Bootstrap

基于springboot+html汽车维修系统汽车维修系统的设计与实现

基于springboot+html汽车维修系统汽车维修系统的设计与实现

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取项目下载方式🍅


一、项目背景介绍:

目前,全国汽车维修行业有一二类企业30多万家,从业人员近300万人,每年都在以10%左右的速度快速增长。国营、集体、股份制、私营、个体、中 外合资等多种经济成分的汽车维修企业在共同发展,4S 店、特约维修服务站、 综合维修厂、快修连锁店、专项维修店等多样化的经营方式各展其长,形成了一个门类齐全、品种多样,分布广泛,服务方便,能够满足不同消费层次需求的汽车维修市场。中国汽车市场发展潜力巨大,特别是私人汽车消费,在未来20年将持续高速增长。中国汽车保有量的快速增长将直接带动国内汽车维修保养市的发展,中国的汽保行业在未来的5-10年中有着无限广阔的发展空间。
随着信息技术的不断革新和渗透,各行各业都在探索拥抱信息技术的合作方式,汽修行业也不例外。信息化的汽车维修管理系统能够实现在数秒钟内从上万份客户档案中找出你所需要的某个车的报修历史记录,能从上万个零配件中找出某个零配件的库存 情况及存放地点,更加方便快捷。

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Spring:Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
  3. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  4. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
  5. Jsp:JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。
  6. Spring-Mvc:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框。
  7. Html:HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。
    超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

1:部门
(car_dept)

字段名类型默认值列注释
idint(50)NULLID
dept_namevarchar(100)NULL部门名称
dept_locationvarchar(100)NULL部门地址

2:dictionary(dictionary)

字段名类型默认值列注释
idint(50)NULL
dictionary_typevarchar(40)NULL类别
codevarchar(40)NULL编码key
valvarchar(100)NULL编码对应值
statusvarchar(4)NULL状态(1:启用[新建默认该状态],2:禁用)
remakevarchar(100)NULL备注

3:仓库
(house)

字段名类型默认值列注释
idint(11)NULLID
house_namevarchar(255)NULL仓库名
house_addressvarchar(255)NULL仓库地址
remarkvarchar(255)NULL备注
statusint(11)NULL标记

4:用户菜单表
(menu)

字段名类型默认值列注释
idint(11)NULLID
user_idint(11)NULL用户编号
menuint(255)NULL菜单名

5:订单
(orders)

字段名类型默认值列注释
idint(50)NULL
registration_idint(50)NULL登记表编号
order_timedatetimeNULL下单时间
staff_idint(50)NULL下单员工id
statusint(4)NULL订单状态(0:未支付,1:已支付,2:维修中,3:质检中,4:已完成)
repair_idint(50)NULL维修人员编号
quality_inspector_idint(50)NULL质检人编号
pay_moneyvarchar(100)NULL支付金额
complete_timedatetimeNULL完成时间

6:配件
(parts)

字段名类型默认值列注释
idint(11)NULLID
parts_type_idvarchar(255)NULL配件类别编号
parts_namevarchar(255)NULL配件名称
statusint(11)NULL标记
parts_pricevarchar(255)NULL采购价格
parts_set_pricevarchar(255)NULL销售价格
parts_numint(11)NULL库存
parts_house_idint(11)NULL仓库编号

7:零件类别
(parts_type)

字段名类型默认值列注释
idint(11)NULLID
type_namevarchar(255)NULL类别名称

8:采购
(purchase)

字段名类型默认值列注释
idint(11)NULLID
purchase_parts_idint(11)NULL零件编号
purchase_suppliers_idint(11)NULL供应商编号
purchase_numint(11)NULL需求量
purchase_start_timedatetimeNULL创建时间
purchase_end_timedatetimeNULL完成时间
statusint(11)NULL标记
purchase_staff_idint(11)NULL采购员

9:测试
(registration)

字段名类型默认值列注释
idint(50)NULLID
visit_namevarchar(100)NULL来访人姓名
visit_sexvarchar(100)NULL来访人性别
visit_telvarchar(100)NULL来访人联系电话
visit_emailvarchar(100)NULL来访人邮箱
visit_timedatetimeNULL来访时间
car_modelvarchar(100)NULL车辆型号
car_license_platevarchar(100)NULL车辆牌照
staff_idint(50)NULL接待人id
statusint(4)NULL预约状态(0:预约,1:放弃预约,2:已下单

10:staff(staff)

字段名类型默认值列注释
idint(50)NULL
user_namevarchar(100)NULL用户名
user_pwdvarchar(100)NULL密码
nick_namevarchar(100)NULL昵称
head_imgvarchar(100)NULL头像
dept_idint(50)NULL部门编号
statusint(4)NULL状态([0:可用1:禁用])
jurisdictionint(4)NULL权限[0:最高管理员,1:普通管理员]

11:供应商管理
(suppliers)

字段名类型默认值列注释
idint(11)NULLID
supplier_namevarchar(255)NULL供应商名称
supplier_uservarchar(255)NULL联系人
supplier_telvarchar(255)NULL联系方式
supplier_emailvarchar(255)NULL邮箱
supplier_addressvarchar(255)NULL地址
supplier_longitudevarchar(255)NULL经度
supplier_latitudevarchar(255)NULL纬度
supplier_codevarchar(255)NULL邮政编码
supplier_cardvarchar(255)NULL银行卡号
statusint(11)NULL标记

12:维修领料
(task)

字段名类型默认值列注释
idint(11)NULLID
task_orders_idint(11)NULL订单编号
task_parts_idint(11)NULL零件编号
task_numint(11)NULL领取数量
task_staff_idint(11)NULL员工编号
task_timedatetimeNULL申请时间
task_really_numint(11)NULL实际领取数量
statusint(11)NULL标记

13:结算
(wind_account)

字段名类型默认值列注释
idint(11)NULLID
account_orders_idint(11)NULL订单编号
account_staff_idint(11)NULL结算人
account_timedatetimeNULL结算时间
statusint(11)NULL支付状态
account_car_timedatetimeNULL取车时间
account_parts_moneyvarchar(255)NULL用料费用
account_work_moneyvarchar(255)NULL项目费用
account_moneyvarchar(255)NULL实际支付

14:维修任务

(work)

字段名类型默认值列注释
idint(11)NULLID
work_orders_idint(11)NULL维修订单
work_staff_idint(11)NULL员工编号
start_timedatetimeNULL开始时间
end_timedatetimeNULL完成时间
statusint(11)NULL标记
work_typeint(11)NULL任务分类
work_timeint(11)NULL维修工时

五、功能模块:

  1. 系统前台:系统首页展示了汽车维修收入折线图和系统人员的分布的分布图。

    系统前台

  2. 接待管理:接待管理用于来访客户的基本信息的展示与管理和订单信息的展示与管理的界面。

    接待管理

  3. 维修信息:维修信息包括维修器械信息的展示与管理和维修任务信息的展示与管理的界面。

    维修信息

  4. 质检信息:质检信息是对质检任务基本信息的展示与管理的界面。

    质检信息

  5. 财务信息:财务信息是对订单信息的展示与管理的界面。

    财务信息

  6. 仓库管理:仓库管理包括零件信息的展示与管理,供货商信息的展示与管理,仓库库存信息的展示与管理,采购信息的展示与管理,维修资料的展示与管理。

    仓库管理

  7. 个人信息:个人信息是个人信息展示和操作的界面。

    个人信息

  8. 系统管理:系统管理是对部门信息、人员信息、字典信息进行展示和操作的界面。

    系统管理

六、代码示例:

系统前台
public ControllerResultData<Staff> updateById(Staff staff) {
        ControllerResultData<Staff> controllerResultData = new ControllerResultData<>();
        try {
            int row = staffService.updateById(staff);
            controllerResultData.setDefaultSuccess();
            staff.setInfluenceRow(row);
            controllerResultData.setData(staff);
        } catch (Exception ex) {
            ex.printStackTrace();
            controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
            controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
        }
        return controllerResultData;
接待管理
public ControllerResultData<Order> deleteById(Order order){
		ControllerResultData<Order> controllerResultData = new ControllerResultData<>();
		try{
			int row = orderService.deleteById(order.getId());
			controllerResultData.setDefaultSuccess();
			order.setInfluenceRow(row);
			controllerResultData.setData(order);
		}catch(Exception ex){
			ex.printStackTrace();
			controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
			controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
		}
		return controllerResultData;
	}

维修信息
public ControllerResultData<Task> updateById(Task task){
		ControllerResultData<Task> controllerResultData = new ControllerResultData<>();
		try{
			//通过id获取orderId
			Task taskDaoById = taskDao.findById(task.getId());
			//修改零件库存
			Parts byId = partsDao.findById(Integer.parseInt(taskDaoById.getTaskPartsId()));
			//判断审核数量不能大于库存数量
			if (Integer.parseInt(task.getTaskReallyNum()) > Integer.parseInt(byId.getPartsNum())){
				controllerResultData.setDefaultFail();
				return controllerResultData.setMsg("库存数量不足!");
			}

			Parts parts = new Parts();
			int partsNum = Integer.parseInt(byId.getPartsNum());
			int taskNum = Integer.parseInt(task.getTaskReallyNum());
			int num = partsNum - taskNum;
			parts.setPartsNum(num+"");
			parts.setId(Integer.parseInt(taskDaoById.getTaskPartsId()));
			int row = taskService.updateById(task);
			if (row > 0){
				partsDao.updateById(parts);
			}
			controllerResultData.setDefaultSuccess();
			task.setInfluenceRow(row);
			controllerResultData.setData(task);
		}catch(Exception ex){
			ex.printStackTrace();
			controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
			controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
		}
		return controllerResultData;
	}
质检信息
 public ControllerResultData<String> delteByIds(String ids) throws Exception {
        ControllerResultData<String> controllerResultData = new ControllerResultData<>();
        try {
            List<Integer> list = new ArrayList<>();
            String[] ids1 = ids.split(",");
            for (int i = 0; i < ids1.length; i++) {
                list.add(Integer.parseInt(ids1[i]));
            }
            int id = workService.deleteByIds(list);
            if (id > 0) {
                controllerResultData.setDefaultSuccess();
            } else {
                controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
                controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
            controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
            controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
        }
        return controllerResultData;
    }
财务信息
public ControllerResultData<Order> insert(Order order){
		ControllerResultData<Order> controllerResultData = new ControllerResultData<>();
		try {
			int id = orderService.insert(order);
			order.setId(id);
			controllerResultData.setDefaultSuccess();
			controllerResultData.setData(order);
		}catch(Exception ex) {
			ex.printStackTrace();
			controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
			controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
		}
		return controllerResultData;
	}
仓库管理
public ControllerResultData<String> delteByIds(String ids) throws Exception {
		ControllerResultData<String> controllerResultData = new ControllerResultData<>();
		try {
			List<Integer> list = new ArrayList<>();
			String[] ids1 = ids.split(",");
			for (int i = 0; i < ids1.length; i++) {
				list.add(Integer.parseInt(ids1[i]));
			}
			int id = houseService.deleteByIds(list);
			if(id > 0){
				controllerResultData.setDefaultSuccess();
			}else{
				controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
				controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
			}
		}catch(Exception ex) {
			ex.printStackTrace();
			controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
			controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
		}
		return controllerResultData;
	}
个人信息
  public ControllerResultData<List<Staff>> findList(Staff staff) {
        ControllerResultData<List<Staff>> controllerResultData = new ControllerResultData<>();
        try {
            staff.setPage((staff.getPage() - 1) * staff.getLimit());
            List<Staff> list = staffService.findList(staff);
            int count = staffService.findPageCount(staff);
            controllerResultData.setCount(count);
            controllerResultData.setData(list);
            controllerResultData.setDefaultSuccess();
        } catch (Exception ex) {
            ex.printStackTrace();
            controllerResultData.setDefaultFail();
        }
        return controllerResultData;
    }
系统管理
public ControllerResultData<String> delteByIds(String ids) throws Exception {
		ControllerResultData<String> controllerResultData = new ControllerResultData<>();
		try {
			List<Integer> list = new ArrayList<>();
			String[] ids1 = ids.split(",");
			for (int i = 0; i < ids1.length; i++) {
				list.add(Integer.parseInt(ids1[i]));
			}
			int id = menuService.deleteByIds(list);
			if(id > 0){
				controllerResultData.setDefaultSuccess();
			}else{
				controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
				controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
			}
		}catch(Exception ex) {
			ex.printStackTrace();
			controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);
			controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);
		}
		return controllerResultData;
	}

七、论文参考:

八、项目总结:

随着汽车迅速进入千家万户,我国进入了发展的黄金时期,汽车维修业和汽车保修设备行业在市场的洗礼中开始由传统的劳动密集型向资金、技术密集型、由生产型向服务型过渡,形成了利润丰厚的汽车后市场。当前世界各大汽车生产厂商在汽车制造方面竞争其剧烈的情况下,己经越来越重视汽车服务产业,并得到了充分发展。在汽车维修已成为万众瞩目的行业这一背景之下,若仍然采用纯手工的管理方式,将会增加信息维护与查找的难度,对企业的市场核心竞争力以及服务质量均有着严重影响,基于这种大环境下,提出了汽车维修管理系统的设计框架,旨在减轻工作人员的重压、实现自动化、信息化、智能化管理。
本设计以IDEA为开发平台,后端使用Java、springboot、springMvc、Mybatis-plus等核心技术实现后台管理,前端使用Html、css、layui、Jquery等技术实现前台展示,数据管理mysql一个关系型数据管理系统。
系统可分为八大基础模板,分别是系统首页、接待管理、维修信息、质检信息、财务管理、仓库管理、个人中心、系统管理。其中首页又可以细分为收入折线图、系统人员分布图俩部分,接待管理又可以细分为信息登记、订单列俩部分,维修信息又可以分为维修资料、维修任务俩部分,仓库管理又可以细分为零件列表、供应商管理、仓库、采购、维修用料审核五部分,系统管理又可以细分为部门列表、人员列表、字典表管理三部分。
最后通过对整个系统的测试、数据库系统的读写以及多方面的测试操作,将系统完善放入服务器上启动,可以完成基本的设计任务。

九、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

本设计以IDEA为开发平台,后端使用Java、springboot、springMvc、Mybatis-plus等核心技术实现后台管理,前端使用Html、css、layui、Jquery等技术实现前台展示,数据管理mysql一个关系型数据管理系统。
系统可分为八大基础模板,分别是系统首页、接待管理、维修信息、质检信息、财务管理、仓库管理、个人中心、系统管理。其中首页又可以细分为收入折线图、系统人员分布图俩部分,接待管理又可以细分为信息登记、订单列俩部分,维修信息又可以分为维修资料、维修任务俩部分,仓库管理又可以细分为零件列表、供应商管理、仓库、采购、维修用料审核五部分,系统管理又可以细分为部门列表、人员列表、字典表管理三部分。
最后通过对整个系统的测试、数据库系统的读写以及多方面的测试操作,将系统完善放入服务器上启动,可以完成基本的设计任务。

九、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

链接点击直达:下载链接

;