1、聊城大学本科毕业设计1本科毕业论文(设计)本科毕业论文(设计)题 目 基于 JavaEE 的客户关系管理 系统的设计与实现 专 业 软件工程 作者姓名 学 号 单 位 聊城大学 指导教师 年 月教 务 处 编聊城大学本科毕业设计2目 录第 1 章 绪论 21.1 系统开发背景 .21.2 系统开发意义 .2第 2 章 系统开发技术 .32.1 Tomcat 服务器 32.2 Oracle 数据库 32.3 JavaEE 概述 42.4 SSM 框架 .42.5 JQuery.52.6 Ajax.5第 3 章 系统分析与设计 .53.1 系统需求分析 .53.2 系统功能分析与描述 .63.2.
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 客户开发计划 13聊城大学本科毕业设计34.3 客户管理 144.3.1 客户信息管理 144.3.2 客户流失管理 164.4 服务管理 174.4.1 服务创建 174.4.2 服务分配 174.5 统计报表 184.5.1 客户贡献分析 184.5.2 客
3、户构成分析 204.6 基础数据管理 214.6.1 数据字典管理 214.6.2 查询产品信息 22第 5 章 系统测试 225.1 测试目的 225.2 测试方法 235.3 测试过程 245.4 测试结果 26第 6 章 结束语 26参考文献 .27聊城大学本科毕业设计4摘 要客户是企业的的上帝,企业的客户资源的正当管理,是任何一个企业的生存与发展的头等大事。客户关系管理系统简称 CRM,该系统就是应对这一问题的而设计。CRM 作为管理企业和客户之间的业务关系的主要管理平台,不仅仅对企业的业务关系进行系统管理,还可以记录企业同客户之间的业务交往活动,同时可以使得客户关系信息更加集中,管理
4、人员可以通过分析这些客户交易信息,更加简捷地预测销售业绩,测量企业绩效。它能更深入地挖掘横向与纵向销售机会,创造一个评估销售流程的平台,识别出现有的问题、最新的趋势,及潜在的机会,直接或间接地增强了企业的盈利能力。该系统用 JSP 和 Oracle 数据库实现了客户信息的收集、统计、归类、查询、分析、以及系统维护等功能。随着计算机技术和互联网的发展,它的功能将会根据实际应用的具体情况进行不断的完善,以便更好应用。本系统操作简单,运行稳定,灵活性好,系统安全性系数高。 关键词:客户关系;管理系统;企业;Javascript;OracleAbstractThe customer is the go
5、d 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 bus
6、iness 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 c
7、an 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, an
8、d the potential opportunities, directly or indirectly, to enhance the profitability of the enterprise.聊城大学本科毕业设计5The system user Jsp and Oracle databases to implement the collection, statistics, categorization, query, analysis, and system maintenance of customer information.With the development of c
9、omputer 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. 聊城大学本科毕业设计6基于 JavaEE的客户关系管理系统的设计与实现第 1章 绪论1.1 系统开发背景随着市场经济的发展,各种企业
10、雨后春笋迅速建立,企业之间愈发竞争激烈,同时各个企业之间信息交互增多、对不同情况的异常的解决方案,第一个是对数据的动态管理,第二个是对各种资料的静态管理,对于一般的企业来说,它更加倾向于把各种杂乱无章的资料进行分类管理,所以该 javaEE 的客户关系管理系统在这种市场的冲击下诞生了。在信息时代的今天,各企业商家所关注的不再侧重于关于产品自身的质量以及生产设备、员工素质等方面的问题,更多的是关心自己的销售群体即客户群,关心他们的想法、需求和购买目的。在这样的情形下,该系统产生了。什么是客户的关系的管理呢?它是企业对于提高客户对企业的满意而展开的一项长期的建立企业和客户之间关系的任务。1.2 系
11、统开发意义对于一个企业来说,客户关系的良好性至关重要,对于某些销售型企业来说,客户关系的重要性往往会变的更加突出,甚至可以决定该企业的生存和发展。它加强了潜在客户的机会管理。杜绝了以往由于潜在客户管理不当而造成的损失。信息更加集中,销售人员也更加有的放矢。通过分析这些客户交易信息,未来交易的成功率得到了大幅的提高。随着计算机技术发展和计算机的普及,数字化网络化应用不断扩大,为提高工作效率人们迫切希望在利用计算机技术和网络的基础上,研发出客户关系管理系统,以减轻销售人员的工作负担,提高其工作效率。与此同时,一个管理得当的客户关系系统还可以对企业的客户和业务关系进行存档管理,极大程度的避免了由于销
12、售人员或者重要岗位领导的人事变动对企业造成客户资源流失的致命性风险。客户关系管理强调以”客户”为中心,以“销售团队管理”为核心,以流程与执行力为诉求的企业级“企业运营管理”平台。它的根本目的是通过不断聊城大学本科毕业设计7改善客户关系、互动方式、资源调配等,降低运营成本、提高企业销售收入、客户满意度和员工生产力,同时更加简捷地预测销售业绩,测量企业绩效。它能更深入地挖掘横向与纵向销售机会,创造一个评估销售流程的平台,识别出现有的问题、最新的趋势,及潜在的机会,直接或间接地增强了企业的盈利能力,达到企业追求最大盈利为最终目的。CRM 着眼于企业利益,同时方便了客户。在当今和未来的企业管理中,CR
13、M 将首当其冲地应用于企业的销售、销售组织和服务组织,给企业带来长久增值和竞争力。第 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 爱好者的喜爱并
14、得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好 Apache 服务器,可利用它响应 HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上 Tomcat 部分是 Apache 服务器的扩展,但它是独立运行的,所以当你运行 tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。2.2 Oracle数据库ORACLE 数据
15、库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或 B/S体系结构的数据库之一。比如 SilverStream 就是基于数据库的一种中间件。ORACLE 数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了 ORACLE 知识,便能在各种类型的机器上使用它。聊城大学本科毕业设计8Oracle 数据库最新版本为 Oracle Databa
16、se 12c。Oracle 数据库 12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如 Oracle Multitenant 可快速整合多个数据库,而 Automatic Data Optimization 和 Heat Map 能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得 Oracle 数据库 12c 成为私有云和公有云部署的理想平台。2.3 JavaEE概述JavaEE 是 J2EE 的一个新的名称,之所以改名,目的还是让大家清楚 J2EE只是
17、Java 企业应用.随着 WEB 和 EJB 容器概念诞生,使得软件应用业开始担心SUN 的伙伴们是否还在 Java 平台上不断推出翻新的标准框架,致使软件应用业的业务核心组件架构无所适从,从一直以来是否需要 EJB 的讨论声中说明了这种彷徨。JavaEE 是为开发企业环境下的应用程序提供的一套解决方案,是一个开发分布式企业级应用的规范和标准。该技术体系中包含的技术如:Servlet 、Jsp 等,主要针对于 Web 应用程序开发。2.4 SSM框架SSM 框架集由 Spring、SpringMVC、MyBatis 三个开源框架整合而成,常作为数据源较简单的 web 项目的框架。对比 SSH
18、框架具有简化开发代码量、提高开发效率的特点。Spring 是一个开源框架,Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 创建。简单来说,Spring 是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。具有轻量、控制反转、面向切面、容器、架构、MVC 等特征。Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring
19、 进行 WEB 开发时,可以选择使用 Spring 的 SpringMVC 框架或集成其他 MVC 开发框架,如 Struts1,Struts2等。 MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 。2013 年聊城大学本科毕业设计911 月迁移到 Github。iBATIS 一词来源于“internet”和“abatis”的组合,是一个基于 Java 的持久层框架。iBATIS 提供的持久层框架包括 SQL Maps 和Data Ac
20、cess 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”(异步 JavaScr
21、ipt 和XML),是指一种创建交互式网页应用的网页开发技术。AJAX = 异步 JavaScript 和 XML(标准通用标记语言的子集)。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新,可使因特网应用程序更小、更快,更友好。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。第 3章 系统分析与设计3.1 系统需求分析CRM 系统的宗旨是:为了满足企业以及每个客户的特殊需求,同每个客户建立联系,通过同客户的联系来了解客户的不同需求,并在此基础
22、上进行“一对一“个性化服务。CRM 管理系统通常由客户信息管理、销售过程自动化(SFA)、营销自动化( MA )、客户服务与支持( CSS )管理、客户分析( CA )系统 5 大主要功能模块组成。该系统的应以全方位的客户关系管理基础,结合完善产品管理和财务管理,以及简洁实用的办公管理等与客户关系维护和开发息息相关的各项内容完美的融合在一起,是完全实现客户、产品、财务、售后服务、团队管理、业绩考核、日常办公协同工作的管理平台,使整个企业的客户管理纳入到统一的规范化管理中。聊城大学本科毕业设计10系统基于 B/S 架构,用户数不限,使用期限不限。企业内各个部门不同岗位的管理人员分别设定不同的系统
23、权限,比如普通业务员只能看到自己的客户资料、合同订单、应收款、费用等数据,而销售部门主管可以看到其所属团队成员的相关数据,老板和销售总监则可以看到所有的数据。3.2 系统功能分析与描述系统主要提供管理登录、营销管理、客户管理、服务管理、统计报表及基础数据管理五项功能。系统功能用例图如 3-2-1 所示:图 3-2-1 系统功能用例图3.2.1 管理登录系统管理员拥有查看并使用系统所有功能的权限,其中包括为普通用户注册帐号并设置其权限的功能,普通管理员只能用于部分管理功能;更改或删除其他用户权限的功能;删除普通管理员的功能等。3.2.2 营销管理营销管理主要功能是针对指定客户在线填报营销策划方案
24、,由客户管理部门负责人审批通过并分配给特定的业务员,业务员根据策划方案执行计划,完成填报营销结果。营销管理包括以下两部分功能:1)营销机会管理聊城大学本科毕业设计11用户在营销机会管理处可以修改或者删除已有的营销机会,当然也可以创建新的营销计划,并且可以通过编号,客户名称以及联系人等条件检索已有的营销机会,高一级的领导人员拥有更高的系统权限,可以对业务人员进行营销机会的授权。2)客户开发计划用户进入客户开发计划处可以查看上级分配给自己的客户开发计划,并且能够通过编号,客户名称以及联系人等条件查询已有的客户开发计划。用户可以针对某一客户开发计划制定营销策略,新建并执行营销策略,营销策略执行成功后
25、保存执行成功状态。3.2.3 客户管理客户管理包括以下两部分功能:1)客户信息管理用户进入客户信息管理页面,可以通过 ID 编号、客户名称、客户经理、联系人电话等条件查询客户信息。针对某一客户,可以进行编辑客户信息、指派联系人、删除用户信息等操作,并能够查看与该客户的交往记录。2)客户流失管理用户进入客户流失管理页面,可以通过 ID 编号、客户名称等条件查询流失客户,流失客户列表可以查看流失客户信息以及状态。针对已流失的客户执行确认流失操作,针对提示流失预警的客户可以新建暂缓流失方案暂缓客户的流失。3.2.4 服务管理服务管理包括以下两部分功能:1)服务创建用户进入服务创建页面,可以通过设置服
26、务类型(包括建议、举报、投诉、咨询)、客户名称、客户单位、联系方式、服务请求等创建服务。2)服务分配用户进入服务分配页面,能够通过服务类型、客户名称、客户单位、联系方式、服务请求等条件查询已创建的服务,并能执行将该服务分配给指定业务聊城大学本科毕业设计12员工和删除指定服务的操作。3.2.5 统计报表及基础数据管理统计报表由以下功能组成:1)客户贡献分析用户进入客户贡献分析页面,可以通过客户名称和 ID 编号等条件查询客户订单金额等信息。2)客户组成分析用户进入客户组成分析页面,可以通过客户登记查询普通客户、合作伙伴、战略合作伙伴的数量,通过信用度查询不同信用度等级的客户数量,通过满意度查询不
27、同满意度等级的客户数量。基础数据管理由以下功能组成:1)数据字典管理用户进入数据字典管理页面,可以新建和查询数据字典信息,并能够通过类别、条目、值等条件查询数据字典信息。2)查询产品信息用户进入查询产品信息页面,可以添加、编辑和删除产品信息,并能够通过名称、型号、批次等条件查询产品信息。3)查询库存信息用户进入查询库存信息页面,可以添加、编辑和删除产品批次信息,并能够通过产品名称、仓库等条件查询库存信息。3.3 数据库设计3.3.1 数据库流程图系统 E-R 图如图 3-3-1 所示:聊城大学本科毕业设计133.3.2 主要数据表(1)customer(客户表)客户表主要用于保存客户信息,其结
28、构如表 3.1 所示:表 3.1 customer(客户表)列名 数据类型 可否为空 说明id NUMBER Not null 序号name VARCHAR2(255) null 客户名region VARCHAR2(255) null 地区manager_id NUMBER null 客户经理level VARCHAR2(255) null 客户等级satify VARCHAR2(255) null 客户满意度credit VARCHAR2(255) null 客户信用度state VARCHAR2(255) null 客户状态tel VARCHAR2(255) null 联系电话fax V
29、ARCHAR2(255) null 客户传真(2)customer_drains(客户流失表)客户流失表主要用于保存流失客户信息,其结构如表 3.2 所示:表 3.2 customer_drains(客户流失表)列名 数据类型 可否为空 说明id NUMBER Not null 序号status VARCHAR2(255) null 流失状态delay VARCHAR2(255) null 暂缓流失计划reson VARCHAR2(255) null 流失原因drain_date TIMESTAMP(6) null 流失时间customer_id NUMBER null 客户序号聊城大学本科毕
30、业设计14last_order_date TIMESTAMP(6) null 最后订单时间(3)users(系统用户表)系统用户表主要用于保存系统用户,其结构如表 3.3 所示:表 3.3 users(系统用户表)列名 数据类型 可否为空 说明id NUMBER Not null 序号enable NUMBER null 用户状态name VARCHAR2(255) null 用户名password VARCHAR2(255) null 密码(4)sales_chance(营销机会表)营销机会表主要用于保存营销机会,其结构如表 3.4 所示:表 3.4 sales_chance(营销机会表)列
31、名 数据类型 可否为空 说明id NUMBER Not null 序号cust_name VARCHAR2(255) null 客户名title VARCHAR2(255) null 概要contact VARCHAR2(255) null 联系人create_by VARCHAR2(255) null 创建人create_date TIMESTAMP(6) null 创建时间designee VARCHAR2(255) null 指派人description VARCHAR2(255) null 机会描述status NUMBER null 状态designee_date TIMESTAMP
32、(6) null 指派时间(5)sales_plan(营销计划表)营销计划表主要用于保存营销计划,其结构如表 3.5 所示:表 3.5 sales_plan(营销计划表)列名 数据类型 可否为空 说明id NUMBER Not null 序号date TIMESTAMP(6) null 计划实施时间to_do VARCHAR2(255) null 计划内容result VARCHAR2(255) null 计划执行结果sale_chance_id NUMBER null 对应营销计划序号(6)orders(订单表)订单表主要用户保存客户订单,其结构如表 3.6 所示:表 3.6 orders(
33、订单表)列名 数据类型 可否为空 说明id NUMBER Not null 序号customer_id NUMBER null 客户序号date TIMESTAMP(6) null 订单日期聊城大学本科毕业设计15address VARCHAR2(255) null 地址status VARCHAR2(255) null 订单状态(7)product(产品表)产品表主要用于保存产品信息,其结构如表 3.7 所示:表 3.7 product(产品表)列名 数据类型 可否为空 说明id NUMBER Not null 序号name VARCHAR2(255) null 产品名称type VARCH
34、AR2(255) null 产品型号batch VARCHAR2(255) null 产品批次unit VARCHAR2(255) null 产品单位price NUMBER null 单价memo VARCHAR2(255) null 备注第 4章 系统功能模块实现4.1管理登录通过用户提交表单的方式将用户输入的登录用户名、用户密码作为请求发送给对应的 Handler,对应的 Handler 接收到用户的登录请求的数据,然后从用户表中查询用户的访问请求数据是否存在,若查找结果为空,则返回当前户名不存;若查询结果不为空,则当前对象存在,然后再对用户输入的密码进行验证是否和数据库中密码字段的值相
35、匹配,若不匹配则登录失败,从新输入密码,若密码验证成功,页面跳转到系统主页并把用户信息存到 session 域中。登录界面如图 4.1 所示:聊城大学本科毕业设计16图 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
36、,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.addFl
37、ashAttribute(“name“, name);return “redirect:/index“;4.2营销管理营销管理模块是该系统的主要功能,实现了营销方案的在线填报、审批、人员分配和执行整个过程,由销售机会管理和客户开发计划两个主要功能组成。聊城大学本科毕业设计174.2.1 销售机会管理普通用户进入销售机会管理页面,可以管理销售机会,包括:销售机会的新建、编辑和删除;客户部领导进入销售机会管理页面,可以将已有的销售机会分配给指定员工执行。销售机会管理页面如图 4.2 所示:图 4.2 销售机会管理页面销售机会管理页面的核心代码如下:RequestMapping(value=“/id
38、“,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.
39、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
40、 session,RedirectAttributes 聊城大学本科毕业设计18attribute)User user = (User) session.getAttribute(“user“);chance.setCreateBy(user);salesChanceService.save(chance);attribute.addFlashAttribute(“message“, “添加成功!“);return “redirect:/chance/list“;4.2.2 客户开发计划用户进入客户开发计划页面,能够查看上级分配给自己的客户开发计划,并能够针对分配给自己的客户开发计划添加计划项
41、并执行,最后根据开发计划的执行结果设置计划执行成功或失败。客户开发计划页面如图 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, HttpServletReques
42、t request, Map map)Page page = new Page();page.setPageNo(pageNo+“);page.setPageSize(pageSize);聊城大学本科毕业设计20Map params = WebUtils.getParametersStartingWith(request, “search_“);page = customerService.getPage(page,params);map.put(“page“, page);String critariaStr = encodeParamWithPrefix(params,“search_“)
43、;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 客户流失管理当用户长时间未没有交易记录时,用户可以在客户流失管理页面查看出现流失预警的客户信息,并且能够针对提示流失预警的客户创建暂缓措施。客户流
44、失管理页面如图 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“;聊城大学本科毕业设计21RequestM
45、apping(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 = dela
46、yStr.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 sa
47、ve(com.atguigu.crm.entity.CustomerService custService) serviceService.save(custService);return “redirect:/service/list“;聊城大学本科毕业设计22Insert(“INSERT INTO customer_services(id, service_type, service_title, customer_id, service_state, service_request, created_id, create_date) VALUES(crm_seq.nextval,#ser
48、viceType, #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=
49、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统计报表统计报表模块包括客户贡献分析和客户构成分析。通过该功能模块,用户能够查看所有用户的订单总金额,查看不同等级、信用度、满意度的客户数量聊城大学本科毕业设计23等信息。4.5.1 客户贡献分析客户贡献分析页面如图 4.8 所示:图 4.8 客户贡献分析页面客户贡献分析页面的核心代码如下:RequestMapping(value=“/