汽车维修管理系统研究毕业论文.docx
《汽车维修管理系统研究毕业论文.docx》由会员分享,可在线阅读,更多相关《汽车维修管理系统研究毕业论文.docx(36页珍藏版)》请在冰豆网上搜索。
汽车维修管理系统研究毕业论文
汽车维修管理系统研究毕业论文
绪论
从接受毕业设计任务到设计完成用了二个月的时间。
整个设计要求对oracle数据库应用系统的基本实现方法以及实现技术、工具有一定的了解。
而且,在设计员工培训教材管理子系统时,需要对功能需求考虑完善。
虽然我以前也做过类似应用系统的设计开发,但通过本次设计还是受益匪浅。
在整个设计过程中,系统的整体构架很早就完成了,接下来的细节问题却使我颇伤脑筋。
随着设计程度的不断深入,又遇到了一些早期没有想到的问题。
为了解决这些问题,有时还要对几个模块进行大幅度的修改。
在设计中,还需要进行细致的测试工作,以发现程序的错误和功能上的不足。
由于时间和个人技术关系,本系统还有一些不足和值得改进的地方,比如说查询功能,可以进行多关键字的匹配功能,这样查询的灵活性就会有明显的提高,同时系统的多个地方还可以应用AJAX技术来减轻系统的负担。
通过这次毕业设计,提高了我在系统整体设计上的能力,增长了分析、解决问题的经验,对一些知识有了更深一步的掌握。
可以说,这次毕业设计既锻炼了我动脑分析问题的能力,又锻炼了我动手解决实际问题的能力,这将对我以后的学习起到不可估量的作用。
通过毕业设计这次磨砺,我的能力也提高了。
所以它对于我们来说有着十分重要的意义。
我会运用从中得到的宝贵经验来指导我今后的学习和工作,不断的实践,不断地学习,让自己变得更加充实自己,更适合于软件行业发展的需要。
1引言
1.1汽车维修管理系统
本系统适合小型汽车维系公司的使用,满足用户的基本需求。
系统比较简单,使用简单,系统的流程是,首先对系统进行初始化,插入一些必要的数据,如模块记录,权限记录,部门记录,管理员账户,给管理员分配角色。
用管理员登录,再通过管理员进行添加部门,添加员工并给用户分配部门和添加必要的信息。
可以在角色管理模块的角色管理添加角色,在添加角色是给角色分配权限。
在同角色分配模块给员工分配角色。
只有分配了角色的员工才可以使用系统的功能,否则不会看到任何模块。
库存物品的管理,系统给物品分类,每个物品属于一个物品种类,每个物品都有库存量,采购价,市场价等属性。
1.2汽车维修管理系统的开发背景和目的
随着汽车迅速进入千家万户,我国汽车维修业也进入了发展的黄金时期,汽车维修业和汽车保修设备行业在市场的洗礼中开始由传统的劳动密集型向资金技术密集型、由生产型向服务型过渡,形成了利润丰厚的汽车后市场。
目前,全国汽车维修行业有一二类企业30多万家,从业人员近300万人,每年都在以10%左右的速度快速增长。
国营、集体、股份制、私营、个体、中外合资等多种经济成分的汽车维修企业在共同发展,4S店、特约维修服务站、综合维修厂、快修连锁店、专项维修店等多样化的经营方式各展其长,形成了一个门类齐全、品种多样,分布广泛,服务方便,能够满足不同消费层次需求的汽车维修市场体系。
中国汽车市场发展潜力巨大,特别是私人汽车消费,在未来20年将持续高速增长。
中国汽车保有量的快速增长将直接带动国内汽车维修保养市的发展,按照一个完全成熟的国际化的汽车市场的利润测算,中国汽车维修保养市场的利润总额约为2153.55亿元。
除了汽车电子领域1000亿人民币的市场,汽保行业仍有超过千亿元人民币的市场。
中国的汽保行业在未来的5-10年中有着无限广阔的发展空间。
与此同时维修企业的计算机管理系统在维修企业的内部管理当中也起到很重要的作用,能在数秒钟内从上万份客户档案中找出你所需要的某个车的报修历史记录,能从上万个零配件中找出某个零配件的库存情况及存放地点,能实现网上订货,方便快捷。
在如此激烈的竞争环境中,企业内部管理体系为我们赢得了宝贵的时间。
杭州汽车维修行业计算机信息系统是全方位、全天候、全过程的汽车维修服务体系,它加强了汽车维修企业与行业管理部门之间的数据传递和信息交流,提高政府行政效率和工作质量,实现汽车维修行业信息公开共享。
信息共享逐步将汽车维修行业计算系统和企业内部管理系统两个自主开发独立运行的信息平台慢慢的紧密联系起来。
信息共享是两个信息平台发展的趋势,经过加强提高,今后在汽车维修行业信息网中能方便快捷的了解到企业的基本信息,以及一些特定经营的基本信息和数据,能了解到各个车辆的报修信息,对车辆信息实现透明化管理。
车辆信息的开放式管理是个突破性的革命,为车辆的再交易提供了一个理性的依据。
随着杭州汽车维修行业计算机信息系统的更深一步的建设,必将更好地服务于汽车维修企业,进一步推动汽车维修行业健康有序的向前发展。
1.3汽车维修管理系统的价值
该系统可以节约员工的工作时间,提高劳动效率,方便管理,库存量的统计,进而快速进行财务的统计,知道每一笔钱的来龙去脉,及时了解公司的运营状况,可以依据系统的运行结果,改变库存量,和库存结构,及时满足客户的要求。
系统对客户进行汽车保养提示,包括短信通知,电话通知和邮件通知。
这样可以保持与客户之间的关系,使得客户的回头率增加。
达到保持老客户,吸引新客户的效果。
该系统可以了解员工的工作效率,每天维修了多少辆车,每辆车的问题,分析,和所用材料,最后用户的满意程度,依据这些信息给员工发放工作,奖金和升职。
这样就可以进行有条不紊大的运作。
2程序开发的技术基础
2.1JSP技术
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠。
图2-1jsp运行机制
2.2JAVA基础
2.2.1JAVA语言
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。
它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。
不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了Java程序的运行效率。
但在J2SE1.4.2发布后,Java的执行速度有了大幅提升。
传统程序不同,Sun公司在推出Java之际就将其作为一种开放的技术。
全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。
“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。
这与微软公司所倡导的注重精英和封闭式的模式完全不同。
Sun公司对Java编程语言的解释是:
Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
2.2.2JAVA语言的特点
Java是一个面向对象的编程语言有封装、继承、抽象、多态等4个主要的特点。
封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部分的“高内聚、第耦合”,防住程序相互依赖而带来的变动影响。
在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰。
抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在当前目标有关的方面。
继承是类之间的一种关系,提高了软件的可重用性和可扩展性。
在定义和实现一个类的时候,可以在一个已经存在的类基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原有的方法使之更适合特殊的需要,这就是继承。
多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定。
对父类的继承和接口的不同实现就是多态的具体表现。
2.3SSH框架
SSH框架是(struts2、Spring、hibernate)是进行J2EE开发时是常用的框架,struts2工作在表现层(进行页面的跳转),spring作用在业务逻辑层,通过DI(依赖注入)给JavaBean注入属性。
Hibernate是一个持久层实现框架,进行对象的保存。
Struts2是一个MVCStruts2是Struts的下一代产品,是在struts和WebWork的技术基础上进行了合并的全新的Struts2框架。
其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。
Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。
虽然从Struts1到Struts2有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。
Spring的一个最大的目的就是使J2EE开发更加容易。
同时,Spring之所以与Struts、Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。
可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(PlainOldJavaObject)对象提供企业级的服务。
JPA全称JavaPersistenceAPI.JPA通过JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
3系统概要设计
3.1系统设计分析
汽车维修管理系统,顾名思义就是汽车维修行业使用的一个系统。
使用系统的用户有工作人员、客户和领导。
不同的用户对系统有不同的权限,所以要有一个权限管理,实现权限的精确控制,使得每个操作都有权限的控制。
汽车维修管理系统是一个公司在使用,因为公司是有不同的部门组成的,不同的部门有不同的职能,而同一个部门的人的权限大多是相同的,所以可以给每个部门赋予一组权限,这就需要角色管理。
因为该系统主要是为了提高工作效率和更好的为客户服务,可以需要一个客户管理,就是记录客户的信息和客户的车辆信息。
在维修车辆完或者开始维修车辆时需要填写维修信息(维修时间、车辆号牌、维修原因、所用零件等信息)
图3-1系统功能结构图
3.2功能模块需求
3.2.1部门管理
部门管理负责添加部门,修改部门,删除部门,查询部门,每一个用户都属于一个部门,可以通过部门查看来知道部门有哪些用户。
图3-2部门管理
3.2.2员工管理
部门管理负责添加部门,修改部门,删除部门,查询部门,每一个用户都属于一个部门,可以通过部门查看来知道部门有哪些用户。
图3-3员工管理
3.2.3角色管理
角色管理是创建系统需要的角色,并给角色设置权限,使得角色拥有相应的权限,再把角色赋予用户。
用户就用户了该角色的权限。
如果某一个模块没有任何权限选择时,该模块就不会显示。
图3-4角色管理
3.2.4角色分配
角色分配是给用户分配角色,可以给用户分配多个角色,用户就拥有了多个角色的所有权限。
当没有给用户分配角色时,用户就看不到任何模块,用户基本不能使用该系统。
但可以修改密码。
图3-5角色分配
3.2.5零件种类管理
零件种类管理是对零件进行分类,这样方便库存管理,知道哪种物品有多少。
图3-6零件种类管理
3.2.6零件管理
零件管理是要添加的物品,这些物品是维修的时候给维修车辆替换的零件,每个零件都有详细信息,包刮零件名称,所属种类,价格,库存量等信息。
该模块有零件的添加,零件的修改,零件的查询,零件的删除。
在添加零件时要给零件选择零件种类。
图3-7零件管理
3.2.7车辆管理
零件管理是要添加的物品,这些物品是维修的时候给维修车辆替换的零件,每个零件都有详细信息,包刮零件名称,所属种类,价格,库存量等信息。
该模块有零件的添加,零件的修改,零件的查询,零件的删除。
在添加零件时要给零件选择零件种类。
图3-8车主管理
3.3性能要求
硬件环境
CUP:
intelcorei5或其他
内存:
2G
硬盘:
250G
软件环境
操作系统:
windows98/2000/XP/7
开发工具:
Myeclipse8.6/PLSQL
Web服务器:
Tomcat6.0
数据库:
Oracle11g
4数据库设计
4.1数据库逻辑结构
数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。
尽量分离各实体对应的表,一个实体对应一个表,搞清楚该实体有哪些属性,对应有哪些字段,以及各实体之间有何种联系。
在本系统中,员工与角色是多对多的关系,角色与权限是多对多的关系。
E-R图向关系模型的转换:
1、E-R图由实体、实体的属性和实体之间的联系三个要素组成
2、将E-R图转换为关系模型:
将实体、实体的属性和实体之间的联系转化为关系模式。
图4-1数据库设计E-R图
4.2数据库分析
维修系统的主要对象是员工和客户(车主),每个员工都有一个部门,所以要有部门表和员工表。
部门表包含部门信息,员工表示员工的相关信息。
每个用户都要拥有一个角色,只有拥有了角色,才能使用系统。
每个角色都要分配权限,所有要有角色表和权限表,在创建维修单是要知道所维修的车辆和该车辆的车主,车主和车辆时一对多的关系,一个车主可以拥有多个车辆,一个车辆只能属于一个车主,下面的表都是通过程序自动生成的。
下面是本系统的所有表:
部门表(department)记录部门信息,通过该表可以知道有多少部门,和部门所在地址和部门的人员。
表4-1部门表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
主键
NULL
主键
name
Varchar2(50)
NO
NULL
部门名称
address
Varchar2(120)
YES
NULL
部门地址
bz
Varchar2(120)
YES
NULL
备注
员工表(Employee)记录员工信息,可以知道该员工所属的部门,和该员工所拥有的角色组。
一个员工只属于一个部门,员工和部门之间是多对一的关系。
一个员工可以拥有多个角色,员工和角色之间是多对一的关系。
表4-2员工表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
主键
NULL
主键
username
Varchar2(50)
NO
NULL
账户
password
Varchar2(50)
NO
NULL
密码
realname
Varchar2(50)
NO
NULL
备注
sex
Varchar2(10)
YES
NULL
性别(男和女)
degree
Varchar2(20)
YES
NULL
学历
School
Varchar2(100)
YES
NULL
学校
Phone
Varchar2(15)
YES
NULL
电话号码
Email
Varchar2(20)
YES
NULL
邮箱
department_id
number(11)
NO
NULL
所属部门
菜单表(Menutreep)记录系统所有的模块,每个模块都有模块名称,上级菜单id,是否是叶子菜单,菜单的显示顺序,是否显示标记,和菜单级别。
表4-3菜单表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
主键
NULL
主键
name
Varchar2(50)
NO
NULL
标题菜单名称
parentid
Varchar2(10)
NO
NULL
上级菜单ID
Leaf
Varchar2(10)
NO
NULL
是否链接页面
linkPage
Varchar2(120)
NO
NULL
链接页面
showfalg
Varchar2(10)
NO
NULL
是否显示
Showid
Varchar2(10)
NO
NULL
菜单显示顺序
catalogid
Varchar2
(1)
NO
NULL
目录级别
权限表(SystemPrivilege)记录该系统所有的权限,每个权限都对应一个菜单表ID,和该权限的在角色授权时相识的名字,和权限判断是用的名称。
该表的数据是在使用系统前,由开发人员添加的。
表4-4权限表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
主键
NULL
主键
module
Varchar2(10)
NO
NULL
菜单表的ID
privilege
Varchar2(50)
NO
NULL
权限的名称(英文)
name
Varchar2(50)
NO
NULL
权限的名称(中文)
角色表(PrivilegeGroup)是该系统所拥有的角色,角色表记录了角色的名称和角色的描述,和角色拥有的所有权限,角色表权限表之间是多对的多的关系。
表4-5角色表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
主键
NULL
主键
name
Varchar2(50)
NO
NULL
角色名称
bz
Varchar2(150)
NO
NULL
角色描述
角色和权限的关联表(PS),该表在程序里没有对应的实体,是在注解中配置的,是通过程序生成的。
该表记录了权限和角色之间的对应关系
表4-6角色表和权限表之间的关联表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
主键
NULL
主键ID
privilegeGroup_Id
number(11)
NO
外键
NULL
角色ID
systemPrivilege_id
number(11)
NO
外键
NULL
权限Id
员工和角色的关联表(EG),员工和角色之间是多对多的关系,一个员工可以拥有多个角色,一个角色可以属于多个用户。
该表记录叫员工表和角色表之间的对应关系。
这样可以通过用户找他拥有的所有角色,还可以通过角色查找使用该角色的所有员工。
这一样就实现了依据角色管理。
表4-7员工表与角色之间的关系表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
主键
NULL
主键ID
employee_Id
number(11)
NO
外键
NULL
员工ID
privilegeGroup_id
number(11)
NO
外键
NULL
角色ID
零件种类表(Kind)是记录所有零配件并给它们分类,方便查找和管理。
一个零件种类可以拥有多个零件,零件种类和零件之间是一对多的关联关系。
零件中有零件名字和描述字段。
表4-8零件种类表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
主键
NULL
主键
Name
Varchar2(10)
NO
NULL
零件种类名称
bz
Varchar2(200)
NO
NULL
描述零件种类
零件表(part)记录了零件的名称,所属零件种类和零件价格,库存等基本信息。
表4-9零件表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
是
NULL
主键
Name
Varchar(10)
NO
否
NULL
零件名称
Color
Varchar(10)
YES
否
NULL
零件颜色
Maxcount
Number(5)
NO
0
最大库存量
minCount
number(5)
NO
0
最小库存量
Marketprice
number(5)
NO
0
市场价格
Sellprice
number(5)
NO
0
销售价格
Baseprice
number(5)
NO
0
采购价格
Bz
Varchar2(200)
YES
NULL
对商品的描述
Kind_id
number(11)
NO
外键
NULL
零件所属种类
车主表(Owner)记录了车主的进行,方便客户维护。
表4-10车主表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
主键
NULL
主键
Name
Varchar2(10)
NO
NULL
零件种类名称
address
Varchar2(150)
YES
NULL
地址
Phone
Varchar2(15)
YES
NULL
电话号码
车辆表(car)记录了所有需要维修的车辆,每个车辆对应一个车主。
表4-11车辆表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
主键
NULL
主键
hphm
Varchar2(10)
NO
NULL
零件种类名称
factory
Varchar2(150)
YES
NULL
地址
Owner_id
number(15)
YES
外键
NULL
电话号码
维修表单(RepairOrder)是对每辆车维修的记录,每辆维修车辆不要填写维修工,维系时间和维修配件单。
维修表单和维修零件的对应关系是一对多的关系。
表4-12维修表
字段
类型
是否空
是否主键
默认值
描述
id
number(11)
NO
主键
NULL
主键
Name
Varchar2(10)
NO
NULL
零件种类名称
Car_id
number(11)
NO
NULL
维修车辆
Emploee_id
number(11)
NO
NULL
维修工
StartTime
Date