来自:薯餠 > 馆藏分类
配色: 字号:
基于SSH的客户关系管理系统的设计与实现
2021-01-22 | 阅:  转:  |  分享 
  


本科毕业论文(设计)

(2020届)





题目:基于SSH的客户关系管理系统设计与实现

姓名:

学号:

学院:

专业:

指导老师:





摘要随着,人类社会的信息化也越来越高,人们和处理的信息日益膨胀,传统的客户关系管理方式已不能满足处理繁琐信息的要求。传统信息管理在对信息进行的时候,人们阅,使工作变得,即使在大量时间和精力下,工作成果的和客观满意度也得不到保证。

本系统是在Windows10操作系统下进行开发,用Eclipse工具进行开发,用HBuilder工具前端页面,应用web应用程序开源框架——SSH在短期内搭建结构清晰、、维护的web应用,不需安装应用程序,减少了和维护的难度;所有数据都保存在端,确保了数据的安全。本系统涵盖市场上所需要的。经过系统测试后,本系统功能都能正常使用,并且页面交互友好,操作简单Abstract

WiththerapiddevelopmentoftheInternet,theinformationlevelofhumansocietyisgettinghigherandhigher,theamountofinformationthatpeopleproduceandprocessisexpandingdaybyday,andthetraditionalcustomerrelationshipmanagementcannolongermeettherequirementsofhandlingcomplexinformation.Traditionalinformationmanagementmodeintheinformationmanagement,increasingthecustomerwillalsobeincreasingthenumberoffiles,peopleaccesstoinformation,processinginformation,canmakeworkdifficultyisdifficult,evenunderthecostofspendalotoftimeandenergytocompletecustomermanagement,thequalityoftheworkandobjectivesatisfactionarefarnotguaranteed.

ThissystemisdevelopedundertheWindows10operatingsystem,USEStheEclipsetoolforJavadevelopment,USEStheHBuildertooltodevelopthefront-endpage,andappliesthewebapplicationopensourceframework--SSHinashortperiodoftimetobuildaclearstructure,easytodevelopandmaintainsimplewebapplications,donotneedtoinstallhighmemoryapplications,reducingthedifficultyofdevelopmentandmaintenance;Alldataisstoredonthedaoside,ensuringdatasecurity.Thissystemcoversthemarketcustomerrelationshipmanagementneedsofseveralimportantmodules,suchascustomermanagement,contractordermanagement,productmanagement.Afterthesystemtest,thesystemfunctionscanbeusednormally,andthepageinteractionfriendly,simpleoperation,datausecanalsobecorrectaccess.

Keywords:CustomerRelationshipManagement,ModelViewController,JAVA;

目录摘要 1

Abstract 2

第1章引言 1

1.1目的和意义 1

1.2系统开发关键技术 2

1.2.1基于B/S的系统开发模式 2

1.2.2JAVASCRIPT 2

1.2.3JAVA语言 2

1.2.4JAVAEE架构——SSH框架 2

1.3系统开发环境 3

1.3.1Eclipse简介 3

1.3.2Tomcat简介 3

1.4系统运行要求 3

1.4.1PC端硬件要求 3

1.4.2软件要求 4

第2章可行性分析 5

2.1经济可行性 5

2.2技术可行性 5

第3章需求分析 6

3.1系统功能分析 6

3.1.1客户关系管理业务流程 6

3.1.2系统要求 7

3.2系统需求分析 7

3.2.1数据流图 8

3.2.2数据字典 9

第4章总体设计 13

4.1系统总体设计 13

4.1.1系统模块功能 13

4.2数据库设计概述 14

4.2.1数据库设计的目的 14

4.2.2数据库选择 14

4.2.3数据库编码 15

4.3数据库详细设计 15

4.3.1数据库物理结构设计 15

4.3.2数据表的设计 15

4.3.2.1E-R图 15

第5章详细设计 22

5.1系统模块介绍 22

5.1.1系统信息管理模块 22

5.1.2客户管理模块 22

5.1.3产品管理模块 23

5.1.4合同订单管理模块 23

5.1.5财务管理模块 23

5.1.6人事管理模块 24

5.2主要功能详细设计 24

5.2.1系统功能模块功能详细设计 24

5.2.2客户管理功能详细设计 28

5.2.3合同订单与财务管理功能详细设计 30

5.2.4人事管理模块功能详细设计 33

第6章系统实现 34

6.1模块实现 34

6.1.1初始化主页面菜单项 34

6.1.2系统参数管理功能实现 35

6.1.3角色管理功能实现 35

6.2客户管理模块实现 37

6.2.1客户列表显示实现 37

6.2.2添加客户跟进实现 38

6.3合同订单模块实现 38

6.3.1订单管理模块 38

6.4产品管理模块实现 40

6.4.1产品类别管理 40

第7章系统测试 41

7.1测试方案概述 41

7.2测试计划与实施 41

7.2.1客户管理模块测试 41

7.2.2合同订单和财务管理模块 42

7.2.3产品管理模块 43

7.2.4人事管理模块 43

7.2.5系统管理模块 44

结论 46

参考文献 47

致谢 48







引言

CRM是一项技术,也是一种记录、保持和增加对公司有利客户的方法和想法,更是一套先进营销理念企业操作流程。客户关系管理系统对于企业管理客户来说,有着十分重要的作用,CRM的应用,起码使得企业的管理客户效率得到提升,管理成本得到下降,更能为企业更好地观察哪些客户是否成为公司的长期合作伙伴关系,在当今大数据、云计算时代是很容易实现的。如今,国内所使用主流的客户关系管理系统能够包括客户关系管理中主要环节,系统的架构包括C/S模式和B/S模式,并应用云计算、大数据和人工智能等更为先进的技术融入到CRM中,对客户关系相关数据和客户关系管理系统开发提供更为准确、便捷地服务[1]。

目的和意义2]。

客户关系管理系统完成对客户基本信息、联系人信息、交往信息、客户服务信息的正确无误地存取和规范化管理;同时可以通过对各种产品购买情况、客户反馈记录的追踪和记录。同时,系统中各项数据,都可以结合当今流行的大数据分析、云计算等先进技术,计算出的报表更加让企业及时作出更精准的决策。

系统/S模式演变成现在的网络结构模式,在该模式下所构建的系统具有简单易用的优点,系统无需在客户端安装任何程序,只需要一处部署,就可以多用户随时随地使用,是一种当前最为流行的系统开发结构模式[3]。

JAVASCRIPT

JavaScript是一种页面脚本语言,是使HTML+CSS开发的静态页面成为动态,也是作为开发web页面的脚本语言。其中Jquery则是对JavaScript的一种封装,是一种框架,里面有灵活的获取页面标签语法,同样ajax提供了异步更新的机制,使得浏览器与服务器的数据交互上不用上传整个文档,而且不用刷新页面才有结果,提高了用户体验感。



JAVA语言

Java语言编写的应用程序在不同的操作系统上都可以运行,只需安装相应系统的java虚拟机,即可达到到处运行的效果。java语言平台版本有三种,其中J2EE企业版是针对web应用程序,已经成为开发web应用程序的首选开发语言,也是作为本系统重要开发版本[4]。



JAVAEE架构——SSH框架

原生的Jsp+servlet+javabean模式的web开发模式,已远远不足加快开发效率,在本系统没有太高的性能要求上,基于框架对系统进行开发,使得我们在开发系统时的效率大大的提升,因为其框架自身的优点可以使得软件在某些程度上可以被重复利用。

SSH框架是由Struts2、Spring、Hibernate三种框架整合后一套开发规范,给web开发提供了一个更为便捷和功能更加强大的方法。基于架构下对系统进行开发,使得我们在开发系统时的效率大大的提升,因为其框架自身的优点可以使得软件在某些程度上可以被重复利用[5]。

系统开发环境Eclipse简介Eclipse是基于java开发的编辑器。最初主要用来Java开发,不同的插件Eclipse可以支持不同的语言,比如C++和Python等开发。,6],运行Tomcat,系统会自动检查并运行命名为ROOT的war包。

系统运行要求

PC端硬件要求

CPU:COREi5-6300HQ

内存:2G及以上

硬盘:5GB

软件要求

PC操作系统:Windows7、Windows10或者Linux

浏览器:Google浏览器、火狐浏览器和qq浏览器等



可行性分析

经济可行性

QLyog的数据库客户端软件和Visio绘图软件,所以在开发这一阶段均不需要任何的经济投入,当本系统正式使用后,只需企业将项目部署到服务器上,通过浏览器使用系统即可,大大的提高企业对客户管理的高效性、时效性。

技术可行性S模式B/S模式和MVC模式的,使用当下流行web应用程序开发的java语言。使用spring框架,整合Struts2和Hibernate。这几大框架都是当前主流web开发框架不可或缺。前端方面的话,主要套用前端的一些jquery框架插件来让前端展示的较为美观,开发技术要求门槛及学习成本不高,而维护难度也并不高,所以说在技术上是可行的[7]。



需求分析



客户关系管理系统主要由以下几大功能模块,如下思维导图03-1所示。



图3-1功能模块思维导图

客户关系管理业务流程

当不用企业角色登陆CRM系统时,页面会根据不同角色,来显示相应权限的菜单导航栏,进行相应模块的操作,比如系统管理员有全部权限,财务管理员管理客户的收款情况。业务流程图如图3-2所示。





简洁明了的操作界面,保证系统的可使用性以及降低用户的操作性;

用户必须通过登录或者注册进行系统主页,保障使用系统的安全性;

罗列项目中某些属性的有限个数的字典项,合成一张数据字典表;

要有完整的客户信息录入、客户跟踪,客户合同的管理等有利于发展客户需要;

要有严谨的、完善的角色权限管理功能;

对使用本系统的公司的人事进行有效的管理,对于一些需要删除的数据,只是逻辑上的删除,而不是物理上的删除,防止重要数据的误删性[8]。

系统需求分析

首先该客户关系管理系统主要的面向对象是一些客户量多,客户来源广的企业或者公司等,在这个基础上,从传统的客户关系管理角度上讲,客户关系管理系统要解决传统手工去记录客户信息拜访的缺点,对这种耗时耗力的工作进行一个改革,也就是把相应的服务上升到与web端交互,完成对客户基本信息、联系人信息、信息、客户服务信息的充分共享和规范化管理;通过客户过程的追踪,提高新客户的开发能力

客户管理模块:有客户列表、联系人列表跟进管理个子功能构成,呈现客户的阶段状态包括售前跟踪、合同执行、售后服务、合同期满等。联系人则是所属每个客户公司的一员,作为与本公司员工进行沟通的一个身份。跟进管理则是显示本公司员工跟进客户的记录。

合同订单模块:企业往来,主要是通过合同形式的,客户关系管理离不开合同方面上的管理,合同管理主要记录客户方和本公司方的促进人,签订时间、结束时间和描述合同中一些关键信息条款等信息。订单管理主要记录客户在本公司购买产品详细记录。

财务管理模块:记录跟,记录分批付款的流水账记录。

产品管理:主要是记录本公司的产品类别,某些产品又分为几个子产品类别,实现产品按分类查询和修改,实现产品信息的查询,修改。方便管理本公司的产品链。

人事管理模块:人事管理模块包括部门管理、职务管理、岗位管理和员工管理模块,主要是对公司的有哪些部门进行管理。职务管理可以用于角色管理的数据来源进行权限分配。员工管理是这个系统的基础模块,涉及到与客户交通的中间人等功能。

系统管理模块:系统管理,规范有些数据项的输入格式,比如客户类型,只能填合同执行、合同期满、售前服务、售后服务,支付方式,只能填承兑汇票、现金支付、网上支付、银行转账等。还有就是角色管理,给不同角色分配不同的本系统的使用权限。数据流图

2)如下所示。



图3-2数据流图

数据字典数据

表-1联系人编号

数据项:联系人编号 别名:id 类型长度:INT(8) 描述:联系人是客户方派出的具体谈判人 表-2合同编号

数据项:合同编号 别名:serialnumber 类型长度:varcahr 描述:用于区分合同的标识 表-3客户编号



表-4客户跟进编号



表-5客户订单序列号

数据项:订单序列号 别名:serialnumber 类型长度:varchar 描述:用于区分订单的标识

表-6产品类别编号









表-7员工编号

数据项:员工编号 别名:hr_employee_id 类型长度:INT 描述:本公司不同部门的员工,也作为本系统不同角色的使用登录用户,只是后面有加个是否可以登录说明,来区别是否是使用本系统的员工 表-8职务编号



表-9系统数据字典编号

数据项:详细的系统数据字典编号 别名:param_sysparam_id 类型长度:INT 描述:用于限定有些数据项的值,相当于枚举

表-10系统数据字典类别编号

数据项:系统数据字典类别编号 别名:type_id 类型长度:INT 描述:用于对各类的数据字典进行分类、说明





表-11登录记录编号

数据项:登录记录编号 别名:sys_login_id 类型长度:INT(8) 描述:用于记录登录此系统的记录 表-12系统菜单名称

数据项:系统菜单名称 别名:menu_name 类型长度:varchar 描述:用于系统在登录之后根据权限来进行显示相应的功能 表-13角色名称

数据项:角色名称 别名:rolename 类型长度:varchar 描述:用于描述使用该系统不同角色,拥有不同权限

总体设计

系统总体设计jsp+servlet的模式开发,现在转变为当前快速开发的Spring、Struts2、Hibernate框架。这三种也是现在企业公司web快速开发的一种web整合框架。

该系统设计中的流程主要是先查阅资料并得出共同点,然后进行基本的需求分析,根据数据库导论,进行数据库设计与建表。搭建SSH的开发环境,根据数据库表,创建实体类,配置xml。然后通过对系统业务逻辑的分析描述出对应的业务逻辑,并进行相应接口来实现相关的业务逻辑功能,再开发控制层对前台界面的数据交互写到对应的action的方法中,通过返回的信息在Struts配置文件中选择跳转什么文件,已经是重定向还是转发的方式在前端做页面跳转。Dao层的数据处理,则是依赖于Spring提供的接口来实现无SQL进行存取数据库操作。

系统模块功能

主要包括以下几大功能模块:客户管理、合同订单管理、财务管理、产品管理、人事管理、系统管理,其中下面又分为几个小功能模块。系统模块结构如图:4-1所示:



图4-1系统功能模块图

数据库设计系统的使用离不开数据,而数据来源也不是凭空捏造而成,数据是系统预先输入的数据作为本次操作的数据对象,编辑后成为下一次的数据源。所以说存储数据有多种方式,其中包括文本存储数据,但是存储文本则涉及到字符流操作,这将会大大降低系统的性能,数据也可以存储redis,但是redis是作为存储热数据,本系统暂不涉及到热数据的分类。综合考虑,将使用Mysql数据库作为本系统的数据存储,个人版免费,满足本系统的各种数据结构的存储方式。

数据库选择

系统采用MySQL作为数据库存取。主要有以下优点:

体积小,存储速度快,相对于Oracle数据库易安装,易卸载;

是一个关系型数据库管理系统,符合本系统面向对象编程,跟Hibernate框架共同完成Dao的数据管理;

优化的SQL查询算法,极大地提高查询速度。

数据库编码

UTF-8编码格式。

数据库详细设计

根据系统功能性需求,数据库设计分为联系人表、合同表、客户表、客户跟进表、客户订单表、订单产品表、产品表、产品类别表、收款表、部门表、员工表、职务表、岗位表、系统详细数据字典表、系统数据字典分类表、系统菜单表、登录记录表、角色表等。

数据库物理结构设计

在本地搭建MySQL5.5.49版本数据库,使用SQLyog远程数据库管理工具b.opt文件和该库下所有表同名的frm文件。



数据表的设计



图4-2系统总体E-R图

表的设计







表-1联系人表(crm_contact)



表-2合同表(crm_contract)



表-3客户表(crm_customer)







表-4客户跟进表(crm_follow)







表-5客户订单表(crm_order)









表-6订单产品表(crm_order_details)



表-7产品表(crm_product)



表-8产品分类表(crm_product_category)







表-9员工表(FUNCTION)



表-10系统字典表(param_sysparam)













表-11角色表(sys_role)



表-12系统菜单表(crm_order_details)







详细设计

系统信息管理模块主要实现的是系统数据字典的增删改查和角色的权限管理,以及对数据回收站的管理。把系统设计成有权限控制的可登录界面,不同权限的用户有着对应着不同使用权限,会通过所看到的客户关系管理系统的菜单导航栏不同,当然拥有最高权限的系统管理员是有管理系统的所有操作的,特别是赋予不同其他角色的权限。这种分权限访问的方式,既可以保证后台系统的相对安全性和灵活性,又可以将客户关系管理的工作分工明确,让不同的使用者在面对本系统的时候也有着自己明确的工作任务,提高了工作效率,工作秩序也将有条不紊[10]。

系统数据字典,是系统中某类信息已规定的字符串选择进行显示和输入的,比如客户来源,那就有网上来源、个人客户、走访等,而不可能出现其他类型的字符串,只能通过系统管理员进行添加新的字符串。数据字典在前端运用广泛,在新添、修改的时候,特殊字段会通过ajax获取相应的数据字典集合,拼接到前端,供用户进行选择,而不能自行输入。数据回收站的管理,考虑到某些重要数据的删除,不能特地的从物理上删除,而是可以恢复的,就需要数据回收站来恢复之前删除的数据。

客户管理模块

客户信息管理模块是本系统的主要核心,主要是包括客户列表的管理,联系人的信息管理,相应客户的跟进管理。客户列表则是客户管理的重要模块,通过分页来展示有限客户,并且伴随着多条件的智能搜素能快速定位到客户信息。可以新增客户数量,查询客户详情,编辑客户详细资料和为每位客户添加最新跟进拜访记录。客户跟进管理是对全部拜访记录的统一管理,同样可以进行多条件的智能搜索。

产品管理模块

产品管理模块很好地呈现本公司所有的产品架构,针对本公司推出套餐、产品等信息进行明确管理,方便员工更加快速地掌握本公司整体产品类型,从而可以根据客户的需求提供相应的产品类型进行服务及沟通。该模块包含产品类别和产品类别相对应详细产品管理。产品类别不至限于一层的分类,它可以像树状结构样,有父类别和子类别,从而对产品进行更加详细的区别。

合同订单管理模块

合同订单管理模块一方面可以了解客户与本企业交易往来记录,另外一方面了解哪些客户跟本公司合作的效率。订单管理,可以看到客户在某段时间与企业之间的购买产品详情,和相应交易时候的实收金额情况。合同管理则是针对那些长期与企业合作,需要企业长期提供产品和技术支持而所需要的一个模块,从纸质上的合同记录转变为电子上记录,极大地提高了合同查询和管理效率。

财务管理模块

财务管理模块,其实也就是记录与客户在经济上的往来。主要有收款管理和流水账管理。其中流水账管理其实就是记录客户在交易中不能一次性付款,而分批付款的流水记录。

人事管理模块

人事管理模块,主要是部门管理、职务管理、岗位管理、员工管理。其中职务管理和岗位管理比较相似,职务是对于某一具体位置的称呼,岗位与人对应,通常只能由一个人担任,一个或若干个岗位的共性体现就是职位。对于一些企业来说是没有这详细的分类,但是还是有必要设计出来,方便有需要的企业使用。

主要功能详细设计

系统功能模块功能详细设计

登录算法设计过程

使用本系统,需要先登录才能使用。进入登录页面,后台生成验证码,加载到页面显示,跟用户名和密码一起通过http协议传入到后台进行校验。如果是用户名不存在,将会体现页面用户名不存在,如果是密码错误,页面也将会提示密码错误,验证码也是。同时,验证码如果无法识别,可以通过点击图片进行刷新,生成新的验证码。



图5-1登录算法流程图



图5-2前台系统登陆图

主页面设计

根据登录用户实例,去后台数据库查找该用户的角色权限,根据权限字符串,生成不同角色所独特的菜单导航栏。另外可以查看个人登录的信息并进行编辑。



图5-3主页面流程图



图5-4个人资料修改

参数界面设计

系统管理员对整个系统中限定输入字段的设置。主要是系统参数类别,以及各种系统参数类别的具体值,主要对参数类别具体值的添加、编辑及删除操作。左边的作为父级参数类别,点击左边相应的选项,右边的表格将会显示该参数类别的全部参数列表,然后就可以为该参数类别的参数列表进行CRUD。需要换参数列表,只需点击系统参数类别的类型即可,右边有动态生成所属列表。



图5-5参数管理图

角色管理

角色管理是对不同角色赋予不同权限,根据其性质赋予使用本系统各种功能使用权限。点击编辑,根据角色实例的属性childmenus与菜单实例进行匹配而回显权限视图,在编辑的时候就知道该角色所拥有什么权限,方便进行修改。修改好后提交,即可重新生成权限字符串存放回数据库的相应字段。



图5-6角色管理流程图



客户管理功能详细设计

客户列表

客户列表是显示全部客户详细信息,可以进行新增客户、多条件的智能查询,对每位客户又可以进行查看详情、编辑信息、删除及客户跟进操作。页面分页功能同一使用jquery插件dataTables来实现。其中添加客户跟进设置这个界面,主要是借助智能查询客户功能,可以快速的进行添加客户跟进,跟进记录将在跟进管理进行显示。





图5-7客户列表图



图5-8新增客户跟进

联系人管理设计过程

联系人在本系统中主要是所属客户方面,直接与公司沟通。页面也客户管理页面大致类型,都有多条件的智能搜索、编辑和添加功能。



合同订单与财务管理功能详细设计

合同管理功能设计过程

合同管理记录着签订日期,公司跟进人,合同金额和合同一些详细内容记录,其中还包括多条件的智能搜素和添加等操作。总体页面设置跟客户管理相同。

订单管理功能设计过程

订单管理中一个客户可以拥有多个订单,同样可以进行智能搜索、添加订单,也可以对每个订单进行查看详情、编辑、删除和查看产品详情。添加订单先是填写客户、订单状态等基本信息,提交后提示需要添加产品,根据添加产品的数量,自动计算该产品总价,然后累加到订单总金额。



图5-9添加订单的基本信息图



图5-10添加订单产品图



图5-11添加订单流程图

收款管理功能设计过程

收款管理主要是对订单金额收款情况的记录,再者考虑到订单金额有些不是一次性付清,所以有这个收款管理来记录。其中显示订单金额、已收总额、未收余额三个重要观察数据。可以查看收款详情与产品详情。



图5-12添加收款流程图



图5-13订单的收款详细图



人事管理模块功能详细设计

部门管理

公司的正常运转离不开分工明确的部门,部门信息的管理也是必不可少的,系统中多处添加员工信息的时候,可以通行选择部门,动态的显示该部门全部员工信息,有着快速定位的作用。其中有基本的CRUD,还有一个搜索框能够查询到多个字段的信息。

系统实现

模块实现

初始化主页面菜单项

主页面菜单项是根据每个角色拥有不同权限进行生成相应的菜单功能。

1、先根据登录成功的用户实例的外键rold_id字段去表sys_role中获取权限对象;

2、然后根据权限对象获取菜单导航栏的id字符串;

3、分割字符串,遍历每一个id从表sys_menu中获取菜单导航栏实例,并get到list集合中。

4、遍历list集合,根据父节点来生成类似树的集合对象来存放菜单导航栏字符串集合,存放到Session域,回传前端进行遍历显示。



图6-1构建层级菜单

系统参数管理功能实现

系统参数用于枚举项目中有限个数的字典项,为了规范用户输入某些字段。比如员工根据客户方式有QQ、上门拜访、微信、电话跟进、短信跟进,而不可能有其他选择,只能系统管理员添加才会有额外选项。首先会先从数据库中的表param_sysparam_type准备系统参数类别集合,同时也准备数据库中的关联表param_sysparam存放各系统参数类别详细的分类集合。从数据库查询两个表,分别存放request域返回给前端进行遍历显示。



图6-2遍历参数类别显示

角色管理功能实现

角色管理功能通过前端页面简洁明朗显示给系统管理员进行权限设置。点击“角色管理”,通过url发送到后台准备两个request域对象,一个是全部角色实例的list集合,用于初始化角色管理界面,另外是菜单选项树menustree,用于点击编辑角色的实现,初始化“角色添加”的菜单导航栏的显示,而且跟角色实例的childmenus的id字符串进行与菜单导航栏匹配,有包含相应的菜单导航栏实例的id,就会勾选相应的导航栏字符串。初始化页面如下图6.1



图6-3系统角色管理

点击相应角色的编辑,显示不同角色拥有的权限选项,如图6.2所示



图6-4员工权限表单

用jquery来灵活获取页面各标签对象,回显给前端,ajax则进行异步发送url给后台要数据再返回给前端,其中无需刷新页面,提高用户体验感。

客户管理模块实现

客户列表显示实现

1、点击客户列表,从后台准备全部的客户信息list集合bywhere,存放到request域中响应给前端。

2、同时页面加载时,触发ajax,去后台获取客户类型、客户级别,城市的json字符串,动态拼接进页面。同时准备员工实体类,用于添加客户时选择员工负责人。

3、分页的实现使用到jquery插件,异步刷新页面,减少回传服务器步骤。

4、智能搜索时候,前端post传递各种参数给后台,即使为空,都由struts2封装到CrmCustomeVobj对象中,传到dao层由Hibernate提供的方法查询,减少拼接sql语句中where条件,也正是使用Hibernate框架的一个好处。



图6-5省市联动JavaScript实现

添加客户跟进实现

点击客户跟进,通过uri传相应客户的id,后台通过id查询客户跟进表crm_follow,查询属于该id的全部跟进记录实体类,传回前端进行显示。在添加的时候,跟进方式会根据预先准备的数据字典进行拼接拉选框。



图6-6点击添加客户跟进



图6-7查询全部跟进记录

合同订单模块实现

订单管理模块

添加订单

添加订单,首先先添加该订单的基本信息,传入struts2进行传入到相应的action方法中,插入表crm_order新数据,然后重定向到查询全部订单信息实体的action方法,存入request域返回前端重新加载页面。



图6-8新添加订单图

可以看到“请去添加产品”,说明添加订单只完成一半,还需要附加上产品才能真正意思说是订单。当在进行添加产品时候,选择产品是从父类到子类,再到孙类进行选择,通过ajax调用crm_cate接口动态的获取子类别,调用crm_prod接口获得子类别下的产品。选择数目,根据改产品记录的单价,总价会它们乘积。保存添加的产品到表表crm_order_details中,其中order_id字段时保存改订单编号。



图6-9添加订单上的产品





产品管理模块实现

产品类别管理

产品类别对管理对产品的详细分类,方便使用者快速找到相应产品。同样也是先后台准备从类别表查询的全部类别实例存放在request响应回前端,由前端进行操作,分页操作用jquery插件dataTables来实现。



图6-10产品类别实例遍历

系统测试

测试方案概述

本系统的测试方案主要是本地eclipse、tomcat、mysql下运行,然后在客户关系管理系统进行逐个功能性模块测试。

测试计划与实施

客户管理模块测试

表7-1表7-2

测试项目 预期结果 通过情况 添加联系人 根据页面显示的填写框,填写,在页面的表格中看到新添加的联系人信息 可以在数据库看到该条记录,前端也可以显示出来 续7-2

编辑联系人 可以显示联系人的原有信息,修改值,前端可以看到修改后的值 可以在数据库看到该条修改记录,前端也可以显示出来 删除联系人 前端没有要删除的记录,数据库的删除转态为0 成功 合同订单和财务管理模块

表7-3

测试项目 预期结果 通过情况 添加合同 按照填写,保存退出后,会在列表查看结果 符合添加内容 智能搜素 根据各种查询项组合,能查找到预期结果 成功 表7-4订单管理功能

测试项目 预期结果 通过情况 生成一个订单 在界面显示订单金额等都是零的字样 数据库和前端都能够成功显示 为新添加的订单,添加产品 在订单操作的产品详细能看到添加的产品,并且订单金额会根据产品的多少来显示总金额 成功 编辑、查看详情 能查看、修改订单 成功

表7-5收款管理

测试项目 预期结果 通过情况 续7-5

给订单添加一笔收款 会根据添加的收款跟以前的已收款金额相加显示到前端 成功 查看相关订单产品详情 显示出一个窗体,关于该订单的全部产品表格 成功

表7-6开票管理

测试项目 预期结果 通过情况 给订单添加一笔开发票记录 会根据添加的发票金额跟以前的已开发票金额相加显示到前端 成功 产品管理模块

表7-7产品管理

测试项目 预期结果 通过情况 对产品类别进行编辑、删除操作 编辑内容立刻回显前端,删除会把相应产品类别删除 成功 对详细产品进行编辑和删除和添加 相应操作会有相应的效果,并且数据库的表会有相关记录 成功 人事管理模块







表7-8人事管理

测试项目 预期结果 通过情况 部门编辑、删除、和新建 相应操作会有相应的效果,并且数据库的表会有相关记录 成功 职务岗位和员工的编辑、删除和新建 相应操作会有相应的效果,并且数据库的表会有相关记录 成功 系统管理模块



表7-9参数管理

测试项目 预期结果 通过情况 对每个系统参数类别点击,参数列表是否跟数据库的数据一致。 对每个系统参数类别点击,参数列表跟数据库的数据一致。 成功 对几个系统参数进行添加参数 会在相应的参数类别的参数列表显示刚才添加新的参数 成功





表7-10角色管理

测试项目 预期结果 通过情况

续7-10

登录不同角色,查看权限是否有效 根据每个不同角色所设定好的权限,登录进去会有不同的菜单项 成功 对几个角色进行修改权限 根据修改好的权限,重新登录,验证是否能显示该功能 成功

结论





参考文献玉晶.CRM对企业效益影响的作用机理研究[D].吉林大学,2008.

王瑶.客户关系管理基础理论体系框架[J].合作经济与科技,2020(06):140-141.



BruceEckel著《Java编程思想》(第4版)[M],北京:机械工业出版社,2007

靳新.基于S2SH框架的客户关系管理系统的设计[J].黑龙江科技信息,2016(12).86.

ElisabethRobson,EricFreema著徐阳,丁小峰等译《HeadFirstHTML与CSS》(第2版)[M],北京:中国电力出版社,2008

史济民,顾春华.《软件工程--原理、方法与应用(第3版)》[M].北京:高等教育出版社,2009

张海藩,《软件工程导论(第5版)》[M].北京:清华大学出版社,2008.

耶鲁大学,利哈伊大学,印度理工学院著,杨冬青等译,《数据库系统概念》[M],北京:机械工业出版社,2008

刘卓华,冉瑞生.基于JSP模型的客户管理系统设计与实现[J].电脑知识与技术,2019,15(18):64-67.



致谢

首先,我要深深感谢指导我论文撰写的导师钟秀玉老师。在论文的选题上、书写论文过程中遇到的问题上、修改论文初稿上都给予我很多的建议,特别是在批改我初稿上,老师对我论文的每一章每一页认真地查阅并指出很多格式上的问题,老师的尽心尽责、严格让我很感动,在此十分感觉钟老师的细心知道。同样,感谢班主任张海军老师这几年来对我们的照顾和指导,感谢这四年中给予我知识的老师们,指引我学习方向的师兄师姐们,和我一起策划过体育赛季,一起欢声笑语的同事们,和四年形影不离的舍友们。

这次的毕业设计,是对大学生在大学中所学的东西综合运用的体现,是最好能验证自己在这四年内是否掌握好了专业技能。对我来说,这次完成毕业设计的过程是很艰难的。从刚开始选题到系统的设计,再到论文文章的撰写,每个部分都有种“书到用时方恨少”的感觉,自己所掌握的知识不足与更好的完成他,于是我就必须规划好要学习的内容,一次次的编写小程序,从一无所知,到真正开始了独立的学习,每一个小功能的完成、每一个bug的修复都会让我兴奋一段时间。通过几个月的不断学习,使得自己最初稚嫩作品一步步完善起来。虽然最后的论文作品不是很成熟,相对于市场上同款系统,功能上的完整性相差很大,但是这次做论文的经验会一直伴随着我,我相信以后在社会这次经验将对我有很大的帮助。

感谢学院的老师们,伴我成长四年,在各方面上提供非常重要的建议,让我能够明确今后的发展方向,我会在今后的工作、学习中加倍努力,不辜负大家对我期望。





基于SSH的客户关系管理系统设计与实现



23









献花(0)
+1
(本文系薯餠首藏)