下周要开发客户关系管理系统,这几天先了解业务,上周南京旅游,跟一个在软件行业混了5年的兄弟讨论职业发展方向,他说工作一年左右的人,只要认真学,技术已经不是问题,关键是业务,精通业务的人,才是无可替代的。我们一道游览了明故宫,,航空航天大学,光华门城墙,中山陵,南京大屠杀纪念馆,江南织锦等,一路的风光,一路的思想汇集。
第一次看项目需求文档,以下是根据文档进行整理的,变成自己所理解的东西,疑问处用红色标注了,白天主要看业务逻辑,晚上回家再用手机细看每个细节,且看且学习,边记边整理,不久的未来,咱也要写出这样的文档,。好,回到这个项目,客户关系系统分为营销管理、客户管理,服务管理,统计报表,基础数据五大模块。
一、营销管理
分为两个小模块:销售机会管理和客户开发计划,
①、销售机会管理模块,无论是业务还是技术,都挺容易实现。主要销售主管和客户经理都可以创建销售机会,修改销售机会,删除销售机会,但只有销售主管可以指派销售机会。
② 、制定开发计划模块,客户经理可以通过新建计划项,编辑已有计划项,和删除计划项来对一个销售机会制定开发计划。对每个计划项填写执行结果,并保存。如果客户同意购买公司产品,已经下订单或者签订销售合同,则标志客户开发成功。某销售机会在确认客户的确没有采购需求后,或不具备开发价值时可认为“开发失败”,且标志客户开发失败。
二、客户管理
公司的大部分利润来自老客户,开发新的客户成本相对较高而且风险相对较大。因此我们有必要对超过6个月没有购买公司产品的客户应予以特殊关注,防止现有客户流失
① 客户信息管理
1、 编辑客户信息
点击客户信息按钮,会直接跳出一个页面,会显示客户编号,名称,地区等字段信息。而这几个字段信息是下一个步骤才去编辑的,我就在想,难道是这里使用的表是销售机会表?后面的几个字段信息再用一张表?仔细一想,不可能这样做,是我想复杂了,一张客户信息表就够了,只不过此时还没编辑客户信息,后面的几个字段显示为空罢了。
2、 客户联系人
每个客户可以有多个联系人,因为客户是公司,所以可以有多位联系人,此处可以对联系人进行新建、编辑和删除。
3、 管理客户交往记录
客户经理需要记录和客户交往的内容,每次交往都要记录发生的日期,地点,概要和详细信息,还有一个备注。
4、 查看客户历史订单
可以查看这个客户的历史订单,再选择一条历史订单查看订单明细,订单明细中上半部分显示订单信息,下半部分显示商品信息,在entity中商品这项应该是订单的某个属性,这个属性是个list集合,集合的每个元素也是个pojo,有商品名称,商品数量,单价总价等属性信息。用hibernate的级联查找,很容易就能获得数据。
② 客户流失管理
1、 客户流失预警
每周六凌晨02:00系统自动检查订单数据,如果发现有超过6个月没有下单的客户,则自动添加一条客户流失预警记录。
这应该是用存储过程加触发器来实现。
2、 暂缓流失
3、 确认流失,这里没什么技术,但有个小的设计,在暂缓流失页面点击“确认流失”按钮,会跳至确认流失页面,再点击“暂缓流失”按钮,又会跳至暂缓流失页面,咋一看觉得这功能就是个无聊的设计,后来仔细想想,应该是方便客户经理使用,当挽回无望,客户经理可立即将客户设置为确认流失。如果没有这个切换的设计,客户经理需要返回上层页面,而点击返回时,上层页面会刷新,如果有几百个客户,客户经理得一个个去找或搜索出这个流失的客户。
三、服务管理
就是服务客户的,客户的需求都体现在这里
由客户经理创建服务,由销售主管分配服务。
① 、服务创建
当客户经理收到客户服务请求的时候,要创建一条服务单据。
② 、服务分配
销售主管将服务分配给专人后,服务单据的状态修改为“已分配”。需要记录分配时间。
③ 、服务处理
被分配处理服务的客户经理负责对服务请求做出处理,并在系统中录入处理的方法。
看到这里有点疑问,客户经理受到客户服务请求,不直接回答客户,而是创建一条服务单据,然后由销售主管进行分配,指定某某客户经理进行处理。难道是为了避免什么?这样设计的意义是什么,如果顾客需要这样设计,那我们就按顾客的设计来。
处理完成的服务单据状态改为“已处理”。
④ 、服务反馈
对状态为“已处理”的服务单据主动联系客户进行反馈,填写处理结果。
我的理解是,应该是由别的客户经理进行服务反馈,记录结果。
根据客户满意度不同,服务单据的流转也不同。
如果服务满意度小于3,服务单据状态改为“已归档”。
如果服务满意度小于3,服务状态改为“已分配”,重新进行处理。
那么此处有个问题需要注意,满意度小于3,说明客户不满意,那这个服务就需要重新指定客户经理来处理,先前的那个没处理好的客户经理是应该被记录起来的,便于日后查看。
实现方法,未实践:新建一张表service_deal_record,字段为:id(主键) 服务处理 处理人 处理时间 服务编号 (外键对应service表),采用一对多的方式,一方是service表,多方是service_deal_record表,每次的服务处理同时保存进service_deal_record表中。每次对service进行服务处理时,显示之前每次的处理记录。
⑤ 、服务归档
客户满意度大于等于3的,服务单据归档,客户经理和销售主管都可以查看已经归档的服务单据。
四、报表统计
大体浏览一遍,实在寒碜,就是简单显示了几条数据而已。纪念日的伯俊ERP系统,它的统计报表庞大而复杂,以至于现在只要一看到报表,就想起那个“零售历史库存报表”,几个人同时查询,几十万的oracle服务器都会崩溃的那种。
五、基础数据
又大体浏览一遍,还是寒碜,仅仅是一些选择框的候选项的内容管理。
全部数据应该是位于一张表中,页面显示时,估计是根据类别区分。
在数据字典项的列表中,对可编辑的数据字典项显示“编辑”和“删除”的操作按钮。
那不可编辑的项就是不显示“编辑”和“删除”。也就是一旦创建了,管理员都删除不掉,除非进数据库删除。有时,这会带来些麻烦,不过一般公司都会有dba或懂数据库的人,也就没啥关系了。
六、权限管理
一直感觉权限管理是很神秘的存在,怎么就能控制权限了呢? 项目的结尾,会对权限进行设置,是个学习的好机会。
整个项目看下来,没什么复杂的技术,细心就好,分页查询是很多地方都有使用的,这个项目我将使用基于ajax 的查询分页,数据显示部分,从ajax中获取,实现页面的局部刷新。