基于JavaEE的客户关系管理系统的设计与实现——毕业论文

上传人:good****022 文档编号:116788100 上传时间:2022-07-06 格式:DOC 页数:34 大小:1.74MB
返回 下载 相关 举报
基于JavaEE的客户关系管理系统的设计与实现——毕业论文_第1页
第1页 / 共34页
基于JavaEE的客户关系管理系统的设计与实现——毕业论文_第2页
第2页 / 共34页
基于JavaEE的客户关系管理系统的设计与实现——毕业论文_第3页
第3页 / 共34页
点击查看更多>>
资源描述
聊城大学本科毕业设计本科毕业论文(设计)题 目 基于JavaEE的客户关系管理 系统的设计与实现 专 业 软件工程 作者姓名 学 号 单 位 聊城大学 指导教师 年 月 教务处编目 录第1章 绪论21.1 系统开发背景21.2 系统开发意义2第2章 系统开发技术32.1 Tomcat服务器32.2 Oracle数据库32.3 JavaEE概述42.4 SSM框架42.5 JQuery52.6 Ajax5第3章 系统分析与设计53.1 系统需求分析53.2 系统功能分析与描述63.2.1 管理登录63.2.2 营销管理63.2.3 客户管理73.2.4 服务管理73.2.5 统计报表及基础数据管理73.3 数据库设计83.3.1 数据库流程图83.3.2 主要数据表8第4章 系统功能模块实现104.1管理登录104.2营销管理114.2.1 销售机会管理114.2.2 客户开发计划134.3客户管理144.3.1 客户信息管理144.3.2 客户流失管理164.4服务管理174.4.1 服务创建174.4.2服务分配174.5统计报表184.5.1客户贡献分析184.5.2客户构成分析204.6 基础数据管理214.6.1 数据字典管理214.6.2 查询产品信息22第5章 系统测试225.1 测试目的225.2 测试方法235.3 测试过程245.4 测试结果26第6章 结束语26参考文献27摘 要客户是企业的的上帝,企业的客户资源的正当管理,是任何一个企业的生存与发展的头等大事。客户关系管理系统简称CRM,该系统就是应对这一问题的而设计。CRM作为管理企业和客户之间的业务关系的主要管理平台,不仅仅对企业的业务关系进行系统管理,还可以记录企业同客户之间的业务交往活动,同时可以使得客户关系信息更加集中,管理人员可以通过分析这些客户交易信息,更加简捷地预测销售业绩,测量企业绩效。它能更深入地挖掘横向与纵向销售机会,创造一个评估销售流程的平台,识别出现有的问题、最新的趋势,及潜在的机会,直接或间接地增强了企业的盈利能力。该系统用JSP和Oracle数据库实现了客户信息的收集、统计、归类、查询、分析、以及系统维护等功能。随着计算机技术和互联网的发展,它的功能将会根据实际应用的具体情况进行不断的完善,以便更好应用。本系统操作简单,运行稳定,灵活性好,系统安全性系数高。关键词:客户关系;管理系统;企业;Javascript;OracleAbstractThe customer is the god of the enterprise, the proper management of the customer resources of the enterprise is the first priority of the survival and development of any enterprise.CRM is the customer relationship management system, which is designed to address this problem.CRM as a management enterprise and customer business relationship between the main management platform, system management for enterprise business relationship, not only can record companies with the customer relationship between the business activities, can make the customer relationship information more concentrated at the same time, managers can through the analysis of the clients trading information, more simple to predict sales, business performance measurement.It can be a more in-depth mining horizontal and vertical sales opportunities, create a platform for evaluating sales process, to identify some problems and the latest trends, and the potential opportunities, directly or indirectly, to enhance the profitability of the enterprise.The system user Jsp and Oracle databases to implement the collection, statistics, categorization, query, analysis, and system maintenance of customer information.With the development of computer technology and the Internet, its function will be continuously improved according to the actual application, so as to better use it. This system has simple operation, stable operation, good flexibility and high system safety. 基于JavaEE的客户关系管理系统的设计与实现第1章 绪论1.1 系统开发背景随着市场经济的发展,各种企业雨后春笋迅速建立,企业之间愈发竞争激烈,同时各个企业之间信息交互增多、对不同情况的异常的解决方案,第一个是对数据的动态管理,第二个是对各种资料的静态管理,对于一般的企业来说,它更加倾向于把各种杂乱无章的资料进行分类管理,所以该javaEE的客户关系管理系统在这种市场的冲击下诞生了。 在信息时代的今天,各企业商家所关注的不再侧重于关于产品自身的质量以及生产设备、员工素质等方面的问题,更多的是关心自己的销售群体即客户群,关心他们的想法、需求和购买目的。在这样的情形下,该系统产生了。什么是客户的关系的管理呢?它是企业对于提高客户对企业的满意而展开的一项长期的建立企业和客户之间关系的任务。1.2 系统开发意义对于一个企业来说,客户关系的良好性至关重要,对于某些销售型企业来说,客户关系的重要性往往会变的更加突出,甚至可以决定该企业的生存和发展。它加强了潜在客户的机会管理。杜绝了以往由于潜在客户管理不当而造成的损失。信息更加集中,销售人员也更加有的放矢。通过分析这些客户交易信息,未来交易的成功率得到了大幅的提高。随着计算机技术发展和计算机的普及,数字化网络化应用不断扩大,为提高工作效率人们迫切希望在利用计算机技术和网络的基础上,研发出客户关系管理系统,以减轻销售人员的工作负担,提高其工作效率。与此同时,一个管理得当的客户关系系统还可以对企业的客户和业务关系进行存档管理,极大程度的避免了由于销售人员或者重要岗位领导的人事变动对企业造成客户资源流失的致命性风险。客户关系管理强调以”客户”为中心,以“销售团队管理”为核心,以流程与执行力为诉求的企业级“企业运营管理”平台。它的根本目的是通过不断改善客户关系、互动方式、资源调配等,降低运营成本、提高企业销售收入、客户满意度和员工生产力,同时更加简捷地预测销售业绩,测量企业绩效。它能更深入地挖掘横向与纵向销售机会,创造一个评估销售流程的平台,识别出现有的问题、最新的趋势,及潜在的机会,直接或间接地增强了企业的盈利能力,达到企业追求最大盈利为最终目的。CRM着眼于企业利益,同时方便了客户。在当今和未来的企业管理中,CRM将首当其冲地应用于企业的销售、销售组织和服务组织,给企业带来长久增值和竞争力。第2章 系统开发技术2.1 Tomcat服务器 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。2.2 Oracle数据库ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。2.3 JavaEE概述JavaEE是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用.随着WEB和EJB容器概念诞生,使得软件应用业开始担心SUN的伙伴们是否还在Java平台上不断推出翻新的标准框架,致使软件应用业的业务核心组件架构无所适从,从一直以来是否需要EJB的讨论声中说明了这种彷徨。JavaEE是为开发企业环境下的应用程序提供的一套解决方案,是一个开发分布式企业级应用的规范和标准。该技术体系中包含的技术如:Servlet 、Jsp等,主要针对于Web应用程序开发。2.4 SSM框架SSM框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。对比SSH框架具有简化开发代码量、提高开发效率的特点。Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。具有轻量、控制反转、面向切面、容器、架构、MVC等特征。Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)2.5 JQuery简介jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。2.6 AjaxAJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新,可使因特网应用程序更小、更快,更友好。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。第3章 系统分析与设计3.1 系统需求分析CRM系统的宗旨是:为了满足企业以及每个客户的特殊需求,同每个客户建立联系,通过同客户的联系来了解客户的不同需求,并在此基础上进行一对一个性化服务。CRM 管理系统通常由客户信息管理、销售过程自动化(SFA)、营销自动化( MA )、客户服务与支持( CSS )管理、客户分析( CA )系统 5 大主要功能模块组成。该系统的应以全方位的客户关系管理基础,结合完善产品管理和财务管理,以及简洁实用的办公管理等与客户关系维护和开发息息相关的各项内容完美的融合在一起,是完全实现客户、产品、财务、售后服务、团队管理、业绩考核、日常办公协同工作的管理平台,使整个企业的客户管理纳入到统一的规范化管理中。系统基于B/S架构,用户数不限,使用期限不限。企业内各个部门不同岗位的管理人员分别设定不同的系统权限,比如普通业务员只能看到自己的客户资料、合同订单、应收款、费用等数据,而销售部门主管可以看到其所属团队成员的相关数据,老板和销售总监则可以看到所有的数据。3.2 系统功能分析与描述系统主要提供管理登录、营销管理、客户管理、服务管理、统计报表及基础数据管理五项功能。系统功能用例图如3-2-1所示:图3-2-1 系统功能用例图3.2.1 管理登录系统管理员拥有查看并使用系统所有功能的权限,其中包括为普通用户注册帐号并设置其权限的功能,普通管理员只能用于部分管理功能;更改或删除其他用户权限的功能;删除普通管理员的功能等。3.2.2 营销管理营销管理主要功能是针对指定客户在线填报营销策划方案,由客户管理部门负责人审批通过并分配给特定的业务员,业务员根据策划方案执行计划,完成填报营销结果。营销管理包括以下两部分功能:1) 营销机会管理用户在营销机会管理处可以修改或者删除已有的营销机会,当然也可以创建新的营销计划,并且可以通过编号,客户名称以及联系人等条件检索已有的营销机会,高一级的领导人员拥有更高的系统权限,可以对业务人员进行营销机会的授权。2) 客户开发计划用户进入客户开发计划处可以查看上级分配给自己的客户开发计划,并且能够通过编号,客户名称以及联系人等条件查询已有的客户开发计划。用户可以针对某一客户开发计划制定营销策略,新建并执行营销策略,营销策略执行成功后保存执行成功状态。3.2.3 客户管理客户管理包括以下两部分功能:1)客户信息管理用户进入客户信息管理页面,可以通过ID编号、客户名称、客户经理、联系人电话等条件查询客户信息。针对某一客户,可以进行编辑客户信息、指派联系人、删除用户信息等操作,并能够查看与该客户的交往记录。2)客户流失管理用户进入客户流失管理页面,可以通过ID编号、客户名称等条件查询流失客户,流失客户列表可以查看流失客户信息以及状态。针对已流失的客户执行确认流失操作,针对提示流失预警的客户可以新建暂缓流失方案暂缓客户的流失。3.2.4 服务管理服务管理包括以下两部分功能:1)服务创建用户进入服务创建页面,可以通过设置服务类型(包括建议、举报、投诉、咨询)、客户名称、客户单位、联系方式、服务请求等创建服务。2)服务分配用户进入服务分配页面,能够通过服务类型、客户名称、客户单位、联系方式、服务请求等条件查询已创建的服务,并能执行将该服务分配给指定业务员工和删除指定服务的操作。3.2.5 统计报表及基础数据管理统计报表由以下功能组成:1)客户贡献分析用户进入客户贡献分析页面,可以通过客户名称和ID编号等条件查询客户订单金额等信息。2)客户组成分析用户进入客户组成分析页面,可以通过客户登记查询普通客户、合作伙伴、战略合作伙伴的数量,通过信用度查询不同信用度等级的客户数量,通过满意度查询不同满意度等级的客户数量。基础数据管理由以下功能组成:1)数据字典管理用户进入数据字典管理页面,可以新建和查询数据字典信息,并能够通过类别、条目、值等条件查询数据字典信息。2)查询产品信息用户进入查询产品信息页面,可以添加、编辑和删除产品信息,并能够通过名称、型号、批次等条件查询产品信息。3)查询库存信息用户进入查询库存信息页面,可以添加、编辑和删除产品批次信息,并能够通过产品名称、仓库等条件查询库存信息。3.3 数据库设计3.3.1 数据库流程图系统E-R图如图3-3-1所示:3.3.2 主要数据表(1)customer(客户表)客户表主要用于保存客户信息,其结构如表3.1所示:表3.1 customer(客户表)列名数据类型可否为空说明idNUMBERNot null序号nameVARCHAR2(255)null客户名regionVARCHAR2(255)null地区manager_idNUMBERnull客户经理levelVARCHAR2(255)null客户等级satifyVARCHAR2(255)null客户满意度creditVARCHAR2(255)null客户信用度stateVARCHAR2(255)null客户状态telVARCHAR2(255)null联系电话faxVARCHAR2(255)null客户传真(2)customer_drains(客户流失表)客户流失表主要用于保存流失客户信息,其结构如表3.2所示:表3.2 customer_drains(客户流失表)列名数据类型可否为空说明idNUMBERNot null序号statusVARCHAR2(255)null流失状态delayVARCHAR2(255)null暂缓流失计划resonVARCHAR2(255)null流失原因drain_dateTIMESTAMP(6)null流失时间customer_idNUMBERnull客户序号last_order_dateTIMESTAMP(6)null最后订单时间(3)users(系统用户表)系统用户表主要用于保存系统用户,其结构如表3.3所示:表3.3 users(系统用户表)列名数据类型可否为空说明idNUMBERNot null序号enableNUMBERnull用户状态nameVARCHAR2(255)null用户名passwordVARCHAR2(255)null密码(4)sales_chance(营销机会表)营销机会表主要用于保存营销机会,其结构如表3.4所示:表3.4 sales_chance(营销机会表)列名数据类型可否为空说明idNUMBERNot null序号cust_nameVARCHAR2(255)null客户名titleVARCHAR2(255)null概要contactVARCHAR2(255)null联系人create_byVARCHAR2(255)null创建人create_dateTIMESTAMP(6)null创建时间designeeVARCHAR2(255)null指派人descriptionVARCHAR2(255)null机会描述statusNUMBERnull状态designee_dateTIMESTAMP(6)null指派时间(5)sales_plan(营销计划表)营销计划表主要用于保存营销计划,其结构如表3.5所示:表3.5 sales_plan(营销计划表)列名数据类型可否为空说明idNUMBERNot null序号dateTIMESTAMP(6)null计划实施时间to_doVARCHAR2(255)null计划内容resultVARCHAR2(255)null计划执行结果sale_chance_idNUMBERnull对应营销计划序号(6)orders(订单表)订单表主要用户保存客户订单,其结构如表3.6所示:表3.6 orders(订单表)列名数据类型可否为空说明idNUMBERNot null序号customer_idNUMBERnull客户序号dateTIMESTAMP(6)null订单日期addressVARCHAR2(255)null地址statusVARCHAR2(255)null订单状态(7)product(产品表)产品表主要用于保存产品信息,其结构如表3.7所示:表3.7 product(产品表)列名数据类型可否为空说明idNUMBERNot null序号nameVARCHAR2(255)null产品名称typeVARCHAR2(255)null产品型号batchVARCHAR2(255)null产品批次unitVARCHAR2(255)null产品单位priceNUMBERnull单价memoVARCHAR2(255)null备注第4章 系统功能模块实现4.1管理登录通过用户提交表单的方式将用户输入的登录用户名、用户密码作为请求发送给对应的Handler,对应的Handler接收到用户的登录请求的数据,然后从用户表中查询用户的访问请求数据是否存在,若查找结果为空,则返回当前户名不存;若查询结果不为空,则当前对象存在,然后再对用户输入的密码进行验证是否和数据库中密码字段的值相匹配,若不匹配则登录失败,从新输入密码,若密码验证成功,页面跳转到系统主页并把用户信息存到session域中。登录界面如图4.1所示:图4.1 登录界面登录界面的核心代码如下:RequestMapping(value=/login,method=RequestMethod.POST)public String login(RequestParam(value=name) String name,RequestParam(value=password) String password,Locale locale, HttpSession session,RedirectAttributes attributes)User user = userService.login(name, password);if(user != null)session.setAttribute(user, user);return redirect:/success;String message = messageSource.getMessage(error.crm.user.login, null, locale);attributes.addFlashAttribute(message, message);attributes.addFlashAttribute(name, name);return redirect:/index;4.2营销管理营销管理模块是该系统的主要功能,实现了营销方案的在线填报、审批、人员分配和执行整个过程,由销售机会管理和客户开发计划两个主要功能组成。4.2.1 销售机会管理普通用户进入销售机会管理页面,可以管理销售机会,包括:销售机会的新建、编辑和删除;客户部领导进入销售机会管理页面,可以将已有的销售机会分配给指定员工执行。销售机会管理页面如图4.2所示:图4.2 销售机会管理页面销售机会管理页面的核心代码如下:RequestMapping(value=/id,method=RequestMethod.PUT)public String update(SalesChance chance)chance.setStatus(1);salesChanceService.update(chance);return redirect:/chance/list;RequestMapping(value=/id,method=RequestMethod.GET)public String edit(PathVariable(value=id) long id,Map map)map.put(chance,salesChanceService.get(id);return chance/input;RequestMapping(value=/id,method=RequestMethod.DELETE)public String delete(PathVariable(value=id) long id)salesChanceService.delete(id);return redirect:/chance/list;RequestMapping(value=/,method=RequestMethod.POST)public String save(SalesChance chance,HttpSession session,RedirectAttributes attribute)User user = (User) session.getAttribute(user);chance.setCreateBy(user);salesChanceService.save(chance);attribute.addFlashAttribute(message, 添加成功!);return redirect:/chance/list;4.2.2 客户开发计划用户进入客户开发计划页面,能够查看上级分配给自己的客户开发计划,并能够针对分配给自己的客户开发计划添加计划项并执行,最后根据开发计划的执行结果设置计划执行成功或失败。客户开发计划页面如图4.3所示:图4.3 客户开发计划页面客户开发计划页面的核心代码如下:RequestMapping(value=/list)public String list(RequestParam(value=pageNo,required=false,defaultValue=1) Integer pageNo, RequestParam(value=pageSize,required=false,defaultValue=4) Integer pageSize, HttpServletRequest request, Map map)Page page = new Page();page.setPageNo(pageNo+);page.setPageSize(pageSize);Map params = WebUtils.getParametersStartingWith(request, search_);page = salesChanceService.getPage(page,params);map.put(page, page);String critariaStr = encodeParamWithPrefix(params,search_);map.put(critariaStr, critariaStr);return chance/list;4.3客户管理4.3.1 客户信息管理用户进入客户信息管理页面,可以查看所有信息并能够按照附加条件进行查询,客户信息包括联系人、交往记录和历史订单,并能够编辑和删除客户信息。客户信息管理页面如图4.4所示:图4.4 客户信息管理页面客户信息管理页面的核心代码如下:RequestMapping(value=/list)public String list(RequestParam(value=pageNo,required=false,defaultValue=1) int pageNo, RequestParam(value=pageSize,required=false,defaultValue=4) int pageSize, HttpServletRequest request, Map map) Page page = new Page();page.setPageNo(pageNo+);page.setPageSize(pageSize);Map params = WebUtils.getParametersStartingWith(request, search_);page = customerService.getPage(page,params);map.put(page, page);String critariaStr = encodeParamWithPrefix(params,search_);map.put(critariaStr, critariaStr);List locals = customerService.getAllKindsDicts(地区);List levels = customerService.getAllKindsDicts(客户等级);map.put(locals, locals);map.put(levels, levels);return /customer/list;4.3.2 客户流失管理当用户长时间未没有交易记录时,用户可以在客户流失管理页面查看出现流失预警的客户信息,并且能够针对提示流失预警的客户创建暂缓措施。客户流失管理页面如图4.5所示:图4.5 客户流失管理页面客户流失管理页面的核心代码如下:RequestMapping(value=/confirm/id, method=RequestMethod.PUT)public String confirm(CustomerDrain customerDrain) drainService.updateConfirm(customerDrain);customerService.updateStatus(customerDrain.getId();return redirect:/drain/list;RequestMapping(value=/delay/)public String delay(RequestParam(value=id, required=false) long id, RequestParam(value=delay, required=false) String delay) CustomerDrain customerDrain = drainService.getById(id);String delayStr = customerDrain.getDelay();delayStr = delayStr + + delay;String split = delayStr.split();Integer count = split.length;customerDrain.setDelay(delayStr);drainService.updateDelay(customerDrain);return count.toString();4.4服务管理4.4.1 服务创建用户进入服务创建页面,能够针对客户请求新建相应服务满足客户的请求。服务创建页面如图4.6所示:图4.6 服务创建页面服务创建页面的核心代码如下:RequestMapping(value=/, method=RequestMethod.POST)public String save(com.atguigu.crm.entity.CustomerService custService) serviceService.save(custService);return redirect:/service/list;Insert(INSERT INTO customer_services(id, service_type, service_title, customer_id, service_state, service_request, created_id, create_date) VALUES(crm_seq.nextval,#serviceType, #serviceTitle, #customer.id, #serviceState, #serviceRequest, #createdby.id, #createDate)void save(CustomerService custService);4.4.2服务分配服务分配页面如图4.7所示:图4.7 服务分配页面服务分配页面的核心代码如下:ResponseBodyRequestMapping(value=/dispatch)public String dispatch(RequestParam(value=serviceId, required=false) long serviceId, RequestParam(value=allotToId, required=false) long allotToId) CustomerService service = new CustomerService();service.setId(serviceId);User allotTo = new User();allotTo.setId(allotToId);service.setAllotTo(allotTo);serviceService.updateAllotTo(service);return 1;4.5统计报表统计报表模块包括客户贡献分析和客户构成分析。通过该功能模块,用户能够查看所有用户的订单总金额,查看不同等级、信用度、满意度的客户数量等信息。4.5.1客户贡献分析客户贡献分析页面如图4.8所示:图4.8 客户贡献分析页面客户贡献分析页面的核心代码如下:RequestMapping(value=/pay/, method=RequestMethod.GET)public String pay(RequestParam(value=pageNo, required=false, defaultValue=1) String pageNoStr, Map map, HttpServletRequest request) throws ParseException int pageNo = 1;try pageNo = Integer.parseInt(pageNoStr); catch (NumberFormatException e) Map params = WebUtils.getParametersStartingWith(request, search_);Page page = reportService.getPayPage(pageNo, 5, params);map.put(page, page);String queryString = PropertyFilter.parseParams2QueryString(params, search_);map.put(queryString, queryString);return report/pay;4.5.2客户构成分析客户构成分析页面如图4.9所示:图4.9 客户构成分析页面客户构成分析页面的核心代码如下:RequestMapping(value=/consist, method=RequestMethod.GET)public String consist(RequestParam(value=pageNo, required=false, defaultValue=1) String pageNoStr, Map map, HttpServletRequest request) int pageNo = 1;try pageNo = Integer.parseInt(pageNoStr); catch (NumberFormatException e) Map params = WebUtils.getParametersStartingWith(request, search_);Page page = reportService.getConsistPage(pageNo, 5, params);map.put(page, page);String queryString = PropertyFilter.parseParams2QueryString(params, search_);map.put(queryString, queryString);return report/consist;4.6 基础数据管理基础数据包括满意度、信用度、地区、客户等级和服务类型等信息,并且用户可以对这些信息自定义。4.6.1 数据字典管理数据字典管理页面如图4.10所示:图4.10 数据字典管理页面数据字典管理页面的核心代码如下:RequestMapping(value=/, method=RequestMethod.POST)public String save(Dict dict) dictsService.saveOrUpdate(dict);return redirect:/dict/list;RequestMapping(value=/id, method=RequestMethod.PUT)public String update(Dict dict) dictsService.saveOrUpdate(dict);return redirect:/dict/list;4.6.2 查询产品信息查询产品信息页面如图4.11所示:图4.11 查询产品信息页面查询产品信息页面的核心代码如下:RequestMapping(value=/id, method=RequestMethod.PUT)public String update(Product product) productService.saveOrUpdate(product);return redirect:/product/list;RequestMapping(value=/id, method=RequestMethod.DELETE)public String delete(PathVariable(id) long id) productService.delete(id);return redirect:/product/list;RequestMapping(value=/, method=RequestMethod.POST)public String save(Product product) productService.saveOrUpdate(product);return redirect:/product/list;第5章 系统测试5.1 测试目的软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测试情况撰写测试报告。测试是为了证明程序有错,而不能保证程序没有错误。5.2 测试方法5.2.1人工测试的方法(1) 个人复查 个人复查是指程序员自行设计测试用例,对源代码、详细设计进行仔细检查,并记录错误、不足之处等。个人复查主要包括检查变量的正确性、检查标号的正确性、检查子程序、宏、函数、常量检查、标准检查、风格检查、比较控制流、选择、激活路径、对照详细说明书,阅读源代码和补充文档等方面的测试内容。(2) 走查 走查是指测试人员先阅读相应的文档和源代码,然后人工将测试数据输入被测试程序,并在纸上跟踪监视程序的执行情况,人工沿着程序的逻辑走查运行一遍,跟踪走查运行的进程来发现程序的错误。走查的具体测试内容包括模块特性、模块接口、模块的对外输入或输出、局部数据结构、数据计算错误、控制流错误、处理出错和边界测试等方面。(3) 会审 会审是指测试人员在会审前仔细阅读软件的有关资料,根据错误类型清单(根据以往的经验、对源程序的估计等,并在以后测试中给以丰富补充)填写检测表,提出根据错误类型要提出的问题。会审时,由程序设计人员讲解程序的设计方法,由程序编写人员逐个讲解程序代码的编写,测试人员需要逐个审查,提问,讨论可能出现的
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!