企业客户关系管理系统 实训报告

Java B/S架构企业管理软件开发与白盒测试实训报告课题名称汽车4S店企业客户关系管理系统的设计与测试系/专 业 计算机与软件学院/软件技术班 级软件1031组 别第四组小组成员蒋露露 吴杰 孙赛男 丁瑞霞 钱敏 贾苗指导教师:董飚 查英华2012 年06月20日诚信承诺书为了更好完成本组承担的汽车4S店企业客户关系管理系统的开发任务,保证软件开发能够符合相关法律法规和政策要求,我组做出以下诚信承诺:1.软件内容坚持原创,不剽窃他人的劳动成果,做到思想性和学术性的统一2. 严格遵守国家有关出版法律、法规,恪守学术道德,坚守学术诚信3.保证我组所承担的软件项目没有侵害其他开发小组的专有版权4.保证我组承担的软件开发不存在著作权问题5.严格执行南京工业职业技术学院对实训期间做出的的管理规定,保证在规定时间内完成软件的开发任务如有违反上述承诺者,本组承担相应的法律责任和民事责任摘 要使用CRM概念和技术,企业能快速搜集、追踪和分析每一个客户的信息,进而了解整个市场走势,并确切知道谁是客户、什么是客户的需求、客户需求什么样的产品和服务、如何才能满足客户的需求,以及满足客户要求的一些重要限制因素。
CRM还能观察和分析客户对企业收益的影响,使企业与客户的关系及企业盈利都得到最优化因此为汽车4S店开发一套客户关系管理系统成为必然趋势通过该系统,使企业的客户管理工作系统化、规范化、自动化,从而达到提高企业客户管理效率的目的企业客户管理系统能够对企业客户基础信息、客户档案浏览、客户资料查询 、客户资料统计、日常记事、通讯录、数据库备份和还原及清空等进行管理及时了解各个环节中信息的变更管理人员必须以管理员身份登录,保证了系统的安全性系统的总体任务是使企业管理人员可以轻松快捷地完成对企业客户管理的任务有利于提高管理效率关键词:CRM、4S店目 录第一章 概述 51.1选题背景 51.2选题意义 51.3选题完成情况 6第二章 系统分析 72.1客户关系管理的特点 72.2用户与角色 82.3系统功能 92.4功能需求分析 102.4.1 任务概述 102.4.2 需求描述 102.5可行性分析 112.6当遵循的标准或规范以及开发环境 12第三章 概要设计 133.1引言 133.1.1编写目的 133.1.2背景 133.1.3定义 143.2总体设计 153.2.1需求规定 153.2.2功能需求和程序的关系 163.2.3构建开发环境 173.3接口设计 183.3.1用户接口 183.3.2硬件接口 183.3.3内部接口 183.4运行设计 193.4.1运行模块组合 193.4.2运行控制 193.5系统数据结构设计 203.6系统出错处理设计 223.6.1出错信息 223.6.2补救措施 223.6.3系统维护 23第四章 详细设计 244.1目的 244.2代码框架描述 244.2.1目录结构 244.2.2数据库连接代码 254.3数据结构定义 264.4营销管理模块详细设计说明 274.4.1销售机会管理 284.4.2客户开发计划管理 294.5客户管理模块详细设计说明 314.5.1新增客户资料 314.5.2查看、修改客户资料 324.5.3删除客户资料 324.6服务管理模块详细设计说明 334.6.1新增服务信息 334.6.2查看、修改服务信息 344.6.3删除服务信息 34第五章 系统功能模块 365.1 login功能的实现 365.2 顾客(customer)模板功能的实现 365.2.1 添加顾客 365.2.2 显示所有顾客信息 375.2.3 查看/修改客户信息 375.2.4 删除客户 375.3 营销管理(sal_chance)模板功能的实现 395.3.1 添加销售机会 395.3.2 显示所有销售机会 395.3.3 查看/修改销售机会 395.3.4 删除销售机会 405.4 客户开发计划(plan)模板功能的实现 415.4.1 添加客户开发计划 415.4.2 显示所有客户开发计划 415.4.3 查看/修改客户开发计划 415.4.4 删除客户开发计划 425.5 服务管理(service)模板功能的实现 435.5.1 添加服务 435.5.2 查询所有服务 435.5.3 查看/修改服务 435.5.4 删除服务 44第六章 测试与运行 456.1测试计划 456.1.1简介 456.1.2约定 466.1.3测试种类及测试标准 486.1.4测试风险 486.1.5暂停标准和在启动要求 496.1.6测试任务和进度 496.1.7测试提交物 506.2测试用例及执行 516.2.1功能测试用例 516.3测试总结 556.3.1项目测试结果 556.3.2测试结论 56第七章 总结 587.1小组总结 587.2 个人总结 60致 谢 67参考文献 68第一章 概述1.1选题背景随着企业信息化的发展趋势和计算机技术的不断提高和飞速发展,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用。
无论是个人还是企业都对计算机应用提出了更高的要求以数据库和计算机技术为核心的各种企业客户管理系统的应用极大的推动了各种企业的发展,提高了企业的管理水平客户关系管理(customer relationship management,CRM),是近年来企业采用的一套先进管理方法CRM 的主要含义就是对企业客户的详细资料做出必要的分析,挖掘出客户潜在销售能力,从而提高企业盈利能力企业客户关系管理系统可以科学、高效地管理企业的客户资源,保存企业与客户进行商业活动相关资料,是当前新技术革命中一个十分活跃和具有很强生命力的技术应用领域,是信息化社会的产物,办公自动化的原动力是人类文明进步和发展的同时人类求的自身解放的需要因此,快捷、准确、方便、高效的客户关系管理系统可以更好地为客户提供优质的服务,为企业的带来更大的经济利益1.2选题意义使用CRM概念和技术,企业能快速搜集、追踪和分析每一个客户的信息,进而了解整个市场走势,并确切知道谁是客户、什么是客户的需求、客户需求什么样的产品和服务、如何才能满足客户的需求,以及满足客户要求的一些重要限制因素CRM还能观察和分析客户对企业收益的影响,使企业与客户的关系及企业盈利都得到最优化。
而随着经济的快速发展,私家车已经越来越普遍因此为汽车4S店开发一套客户关系管理系统成为必然趋势通过该系统,使企业的客户管理工作系统化、规范化、自动化,从而达到提高企业客户管理效率的目的企业客户管理系统能够对企业客户基础信息、客户档案浏览、客户资料查询 、客户资料统计、日常记事、通讯录、数据库备份和还原及清空等进行管理及时了解各个环节中信息的变更管理人员必须以管理员身份登录,保证了系统的安全性系统的总体任务是使企业管理人员可以轻松快捷地完成对企业客户管理的任务有利于提高管理效率1.3选题完成情况本次我组设计的管理系统包括:营销管理、客户管理(包括用户的增加、删除、修改、查看)、客户服务管理、三个功能模块系统功能为本说明书描述中功能的并集在上述文件未明确描述的情况下,应能满足合同和相关投标书所描述的功能第二章 系统分析2.1客户关系管理的特点现行的CRM软件还处于起步阶段,功能模块结构不尽相同,但是其基本的需求是一样的,其主要技术需求应包括六个方面:(1)信息分析能力CRM有大量客户和潜在客户的信息,企业应该充分的利用这些信息进行分析,使得决策者掌握的信息更加完全,从而能及时的作出决策良好的商业情报是企业成功的一半。
2)对客户互动渠道进行集成的能力对多渠道进行集成与CRM解决方案的功能部件的集成是同等重要的不管客户是与企业联系还是与销售人员联系,于客户互动都应该是无缝的、统一的、高效的同一的渠道还能带来内部效益的提高 (3)支持网络应用的能力在支持企业内外的互动和业务处理方面,Web的作用越来越大,这使得CRM得网络功能越来越重要如,网络可以为电子商务渠道提供支持为了使客户和企业雇员都能方便应用CRM,需要提供标准化的网络浏览器,使得用户几乎不需训练就能使用系统另外,如果通过网络为客户提供在线反馈的话并能有专人及时传达信息给公司的售后服务部门,这将为公司留住客户(尤其是距离较远的)并使业绩添砖加瓦4)建设集中的信息仓库的能力采用集中化的信息、实时的客户信息,可使各业务部门和功能模块间的信息能统一起来5)对工作流进行集成的能力工作量是指把相关文档和工作规则自动化安排给负责特定业务流程中特定步骤的人CRM解决方案应具有较强的功能,为跨部门工作提供支持,使这些工作能动态的、无缝的集成6)与ERP功能的集成如果CRM与ERP和财务、库存、制造、分销、物流和人力资源等连接起来,使之成为一个客户互动循环,这种集成能使企业在系统间搜集商业情报,而不是低水平的数据同步。
2.2用户与角色与本系统相关的用户和角色包括:系统管理员:管理系统用户、角色与权限,保证系统正常运行销售主管:对客户服务进行分配分析客户信息,发现潜在客户创建销售机会对销售机会进行指派对特定销售机会制定客户开发计划分析客户贡献、客户构成、客户服务构成和客户流失数据,提交客户管理报告给客户经理客户经理:维护负责的客户信息接受客户服务请求,在系统中创建客户服务处理分派给自己的客户服务对处理的服务进行反馈对负责的流失客户采取“暂缓流失”或“确定流失”的措施针对客户需求设计调查问卷等,指派给业务员业务员:对客户信息进行采集,将客户基本信息提交给客户经理接收客户开发计划,完成后将信息提交给销售主管采集客户需求的服务,提交给销售主管接收售后服务信息,处理并将结果提交给客户经理向客户发调查问卷,并接结果反馈给客户经理2.3系统功能系统用例图如图1所示,子用例图及详细的用例描述见“功能性需求”部分图2-3系统用例图2.4功能需求分析本系统开发的是汽车4S店客户关系管理系统,实现对老客户价值的发掘,更多新客户的开发,通过因特网完成服务的处理和记录2.4.1 任务概述在本小组讨论会议上,大家提出了作为汽车4S店客户关系管理系统,首先必须要有管理面人员,这就要求记录管理人员的基本信息;其次作为汽车店有自己的客户,有客户的相关的一些信息,与客户的相关信息,如新的客户需要添加、好久不联系的客户需要删除;再者就是客户属于各个分类,有的客户是老客户有的是新客户。
再有就营销管理方面,分为营销计划和客户开发计划还有每个行业都要有服务这一项另外小组成员还提出以下这些相关细节:(1)界面美观友好,信息查询灵活、方便、快捷、准确,数据存储安全可靠2)操作员有不同的操作权限,增强了系统的安全性3)用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误4)易维护和易操作性(5)系统运行稳定,安全可靠2.4.2 需求描述在分析小组讨论的系统需求结果的基础之上,我们将各个功能进行分类处理,最后决定将系统分成如下几个功能模块:客户管理模块该客户管理模块的类的设计主要实现增加、删除、修改、查询和显示所以客户信息功能的处理营销管理模块该模块包括营销计划和客户开发计划其中营销计划包括新建营销计划,显示所有营销计划信息,以及修改删除营销计划信息另外客户开发计划包括新建客户开发计划信息,查看显示所有客户计划信息,以及修改和删除要删除的客户开发计划服务管理模块该服务管理模块的类的设计主要实现添加和重置服务的信息的功能以及显示所以服务分配的功能2.5可行性分析(1)技术可行性本系统要求能熟练掌握计算机编程语言我们在大二已经学过了struts语言并且需要有计算机学院的计算机房有充足的计算机设备,并且装有非常多的程序可供使用。
2)时间可行性本课程设计提前启动,相关书籍的借阅,案例的查找可在课外期间完成系统分析,设计的主要内容可在实训期间写学校安排四周的时间来完成所开发的系统的实现和设计报告书的撰写,时间基本是够用的3)经济可行性学院的计算机室提供各种管理信息系统开发的软件,学校的图书馆也有丰富的图书资料可供借阅并且学院给每个管理信息系统课程设计的学生都赠送40个小时的上机操作时间4)组织安排可行性本次管理信息系统的课设题目和要求在实训开始时老师已经给出有不同的课设题目,学生在征求老师的同意后可换更适合自己的课设题目每组同学独立完成一个课设虽然任务有点重,但还是可以完成的综上所述,开发客户管理系统在技术上、时间上、经济上、组织安排上都是可行的2.6当遵循的标准或规范以及开发环境本系统采用Microsoft SQL Server数据库,使用Java EE进行开发,采取B/S架构数据库设计原则上符合第三范式,且规范,易于维护程序需使用MVC模式,采用三层架构,保证系统的可维护性和可扩展性本开发环境具体如下:1.软件环境Ø Microsoft Windows XPØ JDK 1.6Ø Microsoft Office Visio 2003Ø SQL Server 2005Ø Eclipse 1.6Ø Microsoft Office Word 2003Ø Tomcat v6.02.硬件环境Ø 处理器:Intel 奔腾双核 E6500Ø 内存:4GØ 转速:7200rØ 显示器:液晶第三章 概要设计3.1引言在准备开发一个项目之前,首先要对其社会需求以及可行性进行分析,才能具体确定该项目是否有开发的必要,应朝着什么方向开发,这样才能对下一步的行动有所指引,才能做出一个符合社会需求的项目。
我们在做汽车4S店企业客户关系管理系统之前,也做了相关工作3.1.1编写目的在本系统项目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经调查中获得,并在需求规格说明书中得到详尽得叙述及阐明本阶段已在系统的需求分析的基础上,对客户关系管理系统做概要设计主要解决了实现该系统需求的程序模块设计问题包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明 本阶段已在系统的需求分析的基础上,对客户关系管理系统做概要设计主要解决了实现该系统需求的程序模块设计问题包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对机票预定系统所做的模块结构设计的基础上,对系统进行详细设计在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。
3.1.2背景 在系统需求分析完成的基础上对整个系统的一个概要设计,通过文档的形式为以后编码阶段提供依据和帮助,解决一些不必要的麻烦,在与用户再一次进行确认后,根据用户要求确定相关系统功能和性能要求完善系统需求分析的文档3.1.3定义销售主管:对客户服务进行分配;分析客户信息,发现潜在客户;创建销售机会;对销售机会进行指派;对特定销售机会制定客户开发计划;分析客户贡献、客户构成、客户服务构成和客户流失数据,提交客户管理报告给客户经理客户经理:维护负责的客户信息;接受客户服务请求,在系统中创建客户服务;处理分派给自己的客户服务;对处理的服务进行反馈;对负责的流失客户采取“暂缓流失”或“确定流失”的措施;针对客户需求设计调查问卷等,指派给业务员业务员:对客户信息进行采集,将客户基本信息提交给客户经理;接收客户开发计划,完成后将信息提交给销售主管;采集客户需求的服务,提交给销售主管;接收售后服务信息,处理并将结果提交给客户经理;向客户发调查问卷,并接结果反馈给客户经理3.2总体设计3.2.1需求规定确定最终目标如下:实现最初确定的系统功能,在系统易用性方面多做考虑;对系统的人性化处理进行考虑;系统功能模块结构包括:将系统分为4个主要模块:第一个是客户管理:新增客户资料,查看客户资料。
第二个是营销管理:新建销售机会,客户开发计划第三个是服务管理:创建服务,分配服务,处理服务,反馈服务,归档服务第三个是统计报表:客户贡献分析,投诉/建议系统模块用例图如下:图3-2-1系统模块用例图3.2.2功能需求和程序的关系本系统的客户端为浏览器可视界面均通过浏览来实现图3-2-2 系统功能用例图图3-2-3 服务管理处理流程图3-2-4 角色权限用例图3.2.3构建开发环境本系统的开发需要如下软件环境JDK1.6以及其以上版本;JDK1.6是sun公司的最新JDK版本,用户可以到sun公司的官方网站或其他相关链接免费下载SQL Server 2005重点关注企业数据管理、开发人员生产力和商务智能3.3接口设计3.3.1用户接口在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息外观上也要做到合理化,考虑到用户多对WINDOWS 风格较熟悉,应尽量向这一方向靠拢在设计语言上,已决定使用Struts进行编程向WINDOWS风格靠近 其中服务器程序界面要做到操作简单,易于管理在设计上采用下拉式菜单方式。
总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用3.3.2硬件接口在输入方面,对于键盘、鼠标的输入,可用Struts的标准输入/输出,对输入进行处理在输出方面,打印机的连接及使用,也可用Struts的标准输入/输出,对其进行处理在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速ATM3.3.3内部接口内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递具体参数的结构将在下面数据结构设计的内容中说明接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输3.4运行设计3.4.1运行模块组合运行由服务器运行后台程序,客户端由浏览器实现本系统环境使用的是Tomcat v6.0作为服务器端,SQL Server 2005作为系统数据库,代码编写使用JDK 1.6和Eclipse 1.6,浏览器可使用Eclipse自带浏览器,也可以使用其他外置浏览器如IE浏览器等3.4.2运行控制运行控制将严格按照各模块间函数调用关系来实现在各模块中,需对运行控制进行正确的判断,选择正确的运行控制路径严格控制数据输入类型,避免数据类型不匹配的错误3.5系统数据结构设计表3-5-1汇总表表名功能说明cst_customer(客户信息表)保存客户的详细信息cst_service(服务表)保存企业为客户提供的服务记录sal_chance(机会表)保存企业和客户建立关系的机会sal_plan(计划表)保存企业为了开发客户做的计划sys_user(用户表)保存用户的信息表3-5-2 cst_customer(客户信息表)cst_customer客户信息表字段名字段描述数据类型(精度)空/非空默认值约束条件cust_no客户编号char(17)falsecust_name客户名称nvarchar(100)falsecust_region地区nvarchar(50)truecust_manager_id客户经理编号biginttrue外键cust_manager_name客户经理(可省略)nvarchar(50)truecust_level客户等级inttruecust_satisfy满意度inttruecust_credit信用度inttruecust_addr地址nvarchar(300)truecust_zip邮政编码char(10)truecust_tel电话nvarchar(50)truecust_fax传真nvarchar(50)truecust_website网址nvarchar(50)truecust_bank开户银行nvarchar(200)truecust_bank_account银行账号nvarchar(50)truecust_status客户状态:1--正常;2--流失;3--删除。
char(1)true补充说明表3-5-3 sal_chance(销售机会表)sal_chance 机会销售表字段名字段描述数据类型(精度)空/非空默认值约束条件chc_id主键bigintfalse主键chc_source机会来源nvarchar(50)truechc_cust_name客户名称nvarchar(100)falsechc_title概要nvarchar(200)falsechc_rate成功机率intfalsechc_tel联系电话nvarchar(50)truechc_desc机会描述nvarchar(2000)falsechc_create_by创建人(可省略)nvarchar(50)falsechc_create_date创建时间datetimefalsechc_due_to指派给的人(可省略)nvarchar(50)truechc_due_date指派时间datetimetrue补充说明表3-5-4 cst_service(客户服务表)cst_service客户服务表字段名字段描述数据类型(精度)空/非空默认值约束条件svr_id服务编号(主键)bigintfalsesvr_type服务类型nvarchar(20)falsesvr_title服务概要nvarchar(500)falsesvr_cust_no客户编号,外键char(17)true外键svr_cust_name客户名称(可省略)nvarchar(100)falsesvr_status服务状态nvarchar(10)falsesvr_request服务请求nvarchar(3000)falsesvr_create_by创建人名称nvarchar(50)falsesvr_create_date创建日期datetimefalsesvr_due_to分配给某人的名称nvarchar(50)truesvr_due_date分配时间datetimetruesvr_deal服务处理nvarchar(3000)truesvr_deal_id处理人编号biginttruesvr_deal_by处理人名称nvarchar(50)truesvr_deal_date处理日期datetimetruesvr_result处理结果nvarchar(500)truesvr_satisfy满意度booleanfalse补充说明表3-5-5 sal_plan(客户开发计划表)sal_plan客户开发计划表字段名字段描述数据类型(精度)空/非空默认值约束条件pla_id计划编号bigintfalse主键pla_chc_id机会销售编号bigintfalse外键pla_date日期datetimefalsepla_todo计划项nvarchar(500)falsepla_result执行结果nvarchar(500)true补充说明表3-5-6 sys_user(用户表)sys_user用户表字段名字段描述数据类型(精度)空/非空默认值约束条件usr_id编号(自动增长)bigintfalse主键usr_name名称nvarchar(50)falseusr_password密码nvarchar(50)falseusr_role_id角色编号biginttrue外键usr_flag状态(0:已删除,1:正常)intfalse补充说明3.6系统出错处理设计3.6.1出错信息出错信息和警告是指出现问题时系统给出的坏消息,本系统对于出错信息和警告应该遵循以下原则: 1) 信息以用户可以理解的术语描述; 2) 信息应提供如何从错误中恢复的建设性意见; 3) 信息应指出错误可能导致那些不量后果,以便用户检查是否出现了这些情况或帮助用户进行改正; 4) 信息应伴随着视觉上的提示,如特殊的图像、颜色或信息闪烁。
5) 信息不能带有判断色彩,即任何情况下不能指责用户3.6.2补救措施说明故障出现后可能采取的变通措施,包括:1、完全备份这是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象但它需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份2、事务日志备份事务日志是一个单独的文件,它记录数据库的改变,备份的时候只需要复制自上次备份以来对数据库所做的改变,所以只需要很少的时间为了使数据库具有鲁棒性,推荐每小时甚至更频繁的备份事务日志3、差异备份也叫增量备份它是只备份数据库一部分的另一种方法,它不使用事务日志,相反,它使用整个数据库的一种新映象它比最初的完全备份小,因为它只包含自上次完全备份以来所改变的数据库它的优点是存储和恢复速度快推荐每天做一次差异备份4、文件备份数据库可以由硬盘上的许多文件构成如果这个数据库非常大,并且一个晚上也不能将它备份完,那么可以使用文件备份每晚备份数据库的一部分由于一般情况下数据库不会大到必须使用多个文件存储,所以这种备份不是很常用按照数据库的状态可分为三种:1.冷备份,此时数据库处于关闭状态,能够较好的保证数据库的完整性。
2.热备份,数据库正处于运行状态,这种方法依赖于数据库的日志文件进行备份3.逻辑备份,使用软件从数据库中提取数据并将结果写到一个文件上3.6.3系统维护定期进行相关系统检查,由系统管理员操作1) 码表维护 对于所有的码表统一用一个模块维护,要求所有的码表数据表的字段有统一的格式2)基础数据维护,对于一些基础数据,用一个基础数据维护模块来维护3)数据库的备份和恢复利用SQL Server 2005自身提供的功能来实现第四章 详细设计4.1目的为了能够挖掘每个人的潜能,为了培养个人的团队精神,为了能够使每一个人都能够在学习中获取巨大的进步,为了将来能够早点跨入社会,迈出新的一步,我们认为这一部分一定要所有人都参与进来详细设计部分的内容很重要,通过这部分的设计,我们的独立思考能力、信息检索能力、团队合作能力会有很大的提升并且详细设计是一个系统最直接的实现部分,能不能完成系统的功能,全靠详细设计来决定了4.2代码框架描述本部分描述系统的源代码分布框架,说明源代码存放的目录结构、各源文件的功能图4-2目录结构图4.2.1目录结构说明系统源代码文件存放的目录、子目录,及其包含的文件列表根据MVC模式,分为视图层,控制层,模型层,此次主要到模型层结构进行细割划分:表4-2-1-1 模型层结构表源文件名称功能描述bean 数据封装Customer顾客信息表 Plan客户开发计划信息表Sal_chance销售机会信息表Service服务信息表Dao 与数据库交互Customer DAO顾客接口Plan DAO客户开发计划接口Sal_chance DAO销售机会接口Service DAO服务接口 Action接口的实现CustomerAction顾客接口的实现PlanAction客户开发计划接口的实现Sal_chanceAction销售机会接口的实现ServiceAction服务接口的实现数据库连接DBConn数据库连接Service逻辑层CustomerService顾客逻辑层PlanService客户开发计划逻辑层Sal_chanceService销售机会逻辑层ServiceService服务逻辑层4.2.2数据库连接代码数据库能够正确的链接是本系统实现的基础,如果DAO与数据库连接不上,那系统就谈不上DAO与数据库的交互,那么所有的页面就只是个静态的摆设,不能实现系统功能。
下面是我们的数据库连接的部分代码:public class DBConn { public static Connection getConnection(){ String url="jdbc:sqlserver://localhost:1433;DatabaseName=carshop"; String User="sa"; String Password=""; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn=DriverManager.getConnection(url, User, Password); return conn; } catch(Exception e) { e.printStackTrace(); } return null;}4.3数据结构定义实现该模块的主要数据结构定义顾客类,属性:private String cust_no; private String cust_name; private String cust_region; private String cust_manager_id; private String cust_manager_name; private int cust_level; private int cust_satisfy; private int cust_credit; private String cust_addr; private String cust_zip; private String cust_tel; private String cust_fax; private String cust_website; private String cust_bank; private String cust_bank_account; private int cust_status;客户开发计划类,属性:private int pla_id; private int pla_chc_id; private Date pla_date; private String pla_todo; private String pla_result;销售机会类,属性: private int chc_id; private String chc_source; private String chc_cust_name; private String chc_title; private int chc_rate; private String chc_tel; private String chc_desc; private String chc_create_by; private Date chc_create_date; private String chc_due_to; private Date chc_due_date;服务类,属性: private int svr_id; private String svr_type; private String svr_title; private String svr_cust_no; private String svr_cust_name; private String svr_status; private String svr_request; private int svr_create_id; private String svr_create_by; private Date svr_create_date; private String svr_due_by; private Date svr_due_date; private String svr_result;4.4营销管理模块详细设计说明营销管理模块包含销售机会的管理和对客户开发过程的管理,子用例图如图所示。
图4-2系统用例图营销的过程是开发新客户的过程对老客户的销售行为不属于营销管理的范畴客户经理有开发新客户的任务,在客户经理发现销售机会时,应在系统中录入该销售机会的信息销售主管也可以在系统中创建销售机会所有的销售机会由销售主管进行分配,每个销售机会分配给客户经理客户经理对分配给自己的销售机会制定客户开发计划,计划好分几步开发,以及每个步骤的时间和具体事项制定完客户开发计划后,客户经理按实际执行请跨功能填写计划中每个步骤的执行效果在开发计划结束的时候,根据开发的结果不同,设置该销售机会为“开发失败”或“开发成功”如果开发客户成功,系统自动创建新的客户记录4.4.1销售机会管理 4.4.1.1添加销售机会业务概述:营销的过程是开发新客户的过程对老客户的销售行为不属于营销管理的范畴客户经理有开发新客户的任务,在客户经理发现销售机会时,应在系统中录入该销售机会的信息销售主管也可以在系统中创建销售机会所有的销售机会由销售主管进行分配,每个销售机会分配给客户经理客户经理对分配给自己的销售机会制定客户开发计划,计划好分几步开发,以及每个步骤的时间和具体事项。
制定完客户开发计划后,客户经理按实际执行请跨功能填写计划中每个步骤的执行效果在开发计划结束的时候,根据开发的结果不同,设置该销售机会为“开发失败”或“开发成功”如果开发客户成功,系统自动创建新的客户记录使用者描述:销售主管、客户经理输入信息要素:创建销售机会的系统界面如图4.3所示图4-3系统界面截图信息处理流程:从界面得到所需信息,然后在数据库中创建新的纪录4.4.1.2修改销售机会业务概述:对获取的并未分配的销售机会记录可以编辑使用者:销售主管、客户经理输入信息要素:选择任意一条进行修改在编辑页面,可以对机会来源、客户名称、成功机率、概要、联系人电话、机会描述进行编辑其他信息不可编辑4.4.2客户开发计划管理 对销售机会制定开发计划,执行开发计划,并记录执行结果客户开发成功还将创建新的客户记录4.4.2.1制定开发计划业务概述: 客户经理对分配给自己的销售机会制定开发计划使用者:客户经理输入信息要素:在制定开发计划时,应显示出销售机会的详细信息客户经理可以通过新建计划项,编辑已经有的计划项,即删除计划项来针对一个销售机会来制定客户开发计划每个计划项包括两个输入要素:日期和计划内容,都是必输项。
日期的输入格式为“2012-12-13”编辑计划项时,日期不可以编辑信息处理流程:首先选择一“已指派”的销售机会进行指定计划的操作,然后制定计划输出信息要素:提交并更新当前页面时在计划项列表中显示新建的计划项4.4.2.2执行开发计划业务概述:完成客户开发计划的制定后,客户经理开始按照计划内容执行客户开发计划,并按时记录执行结果使用者:客户经理输入信息要素:对每个计划项填写执行效果,并保存增删改查部分代码:private Sal_chanceDAO sal_chanceDAO; public Sal_chanceService() { sal_chanceDAO = new Sal_chanceDAO(); } public boolean insertSal_chance(Sal_chance sal_chance) { Sal_chance temp = Sal_chanceDAO.getSal_chanceByChc_id(sal_chance.getChc_id()); if(temp == null) { return sal_chanceDAO.insertSal_chance(sal_chance); } return false; } public List getAllSal_chances() { return sal_chanceDAO.getAllSal_chances(); } public Sal_chance getSal_chanceByChc_id(int chc_id){ return Sal_chanceDAO.getSal_chanceByChc_id(chc_id); } public boolean deleteSal_chance(int id) { return sal_chanceDAO.deleteSal_chance(id); } public boolean updateSal_chance(Sal_chance sal_chance) { return sal_chanceDAO.updateSal_chance(sal_chance); }4.5客户管理模块详细设计说明客户管理模块的主要功能有对客户信息的增删改查,客户管理的子用例图如下图所示:图4-5 客户管理子用例图当有新的客户时,客户经理可以新增客户,可以查看所有客户,可以修改客户信息和客户状态,查看每个客户的明细,确认客户的流失情况等。
4.5.1新增客户资料业务概述:客户经理可以新增客户信息使用者描述:客户经理输入信息要素:客户编号、客户姓名、联系方式、客户经理、客户等级是必填项,客户经理候选项为所有状态为“正常”的系统用户客户满意度和客户信用度候选项的值都是1~5信息处理流程:点击“新建”按钮,新增一条客户信息,保存成功4.5.2查看、修改客户资料业务概述:对获取的客户资料记录可以查看详细信息、可编辑使用者:客户经理输入信息要素:客户编号不可修改在编辑页面,可以对客户姓名、所在地区、客户等级、联系电话进行编辑可以更改其满意度和信用度,以及对客户的流失状态进行确认4.5.3删除客户资料业务概述:对获取的客户资料记录可以删除使用者:客户经理输入信息要素:选择任意一条进行删除可以删除成功,数据库中清除该条记录增删改查部分代码:public CustomerService() { customerDao = new CustomerDao(); } public boolean addCustomer(Customer customer){ Customer temp = CustomerDao.getCustomerByNo(customer.getCust_no()); if(temp == null) { return customerDao.addCustomer(customer); } return false; } public List getAllCustomer() { return customerDao.getAllCustomer() ; } public boolean cust_delete(String cust_no) { return customerDao.cust_delete(cust_no); } public boolean cust_update(Customer customer) { return customerDao.cust_update(customer) ;} public Customer getCustomerByNo(String cust_no){ return CustomerDao.getCustomerByNo(cust_no); }4.6服务管理模块详细设计说明服务管理模块的主要功能有新增服务信息、查看修改服务信息、指派服务、对服务处理情况进行反馈、删除服务信息等。
下面是子模块用例图:图4-6 服务管理模块用例图4.6.1新增服务信息业务概述:客户经理可以新增服务信息使用者描述:客户经理输入信息要素:服务编号、客户编号、客户姓名、创建人姓名是必填项,服务类型有“咨询”、“建议” 、“投诉”三种可供选择服务状态、处理人姓名、处理时间、处理结果、满意度可以后来进行编辑信息处理流程:点击“新建”按钮,新增一条客户信息,保存成功4.6.2查看、修改服务信息业务概述:对获取的服务信息记录可以查看详细信息、可编辑使用者:客户经理输入信息要素:服务编号不可修改服务类型可以修改,服务状态、处理人姓名、处理时间、处理结果、满意度可以进行编辑4.6.3删除服务信息业务概述:对获取的服务信息记录可以删除使用者:客户经理输入信息要素:选择任意一条进行删除可以删除成功,数据库中清除该条记录增删改查部分代码:private ServiceDao serviceDao; public ServiceService() { serviceDao = new ServiceDao(); } public boolean addService(Service service) { Service temp = serviceDao.getServiceBySvr_id(service.getSvr_id()); if(temp == null) { return serviceDao.addService(service); } return false; } public List getAllServices() { return serviceDao.getAllServices(); } public boolean deleteService(int svr_id) { return serviceDao.deleteService(svr_id); } public boolean updateService(Service service) { return serviceDao.updateService(service); } public Service getServiceBySvr_id(int svr_id){ return serviceDao.getServiceBySvr_id(svr_id); }增删改查功能的structs配置: