上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

【开源】基于JAVA的河南软件客服系统

guduadmin32小时前

【开源】基于JAVA的河南软件客服系统,在这里插入图片描述,第1张


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
    • 二、功能模块
      • 2.1 系统管理人员
      • 2.2 业务操作人员
      • 三、系统展示
      • 四、核心代码
        • 4.1 查询客户
        • 4.2 新增客户跟进情况
        • 4.3 查询客户历史
        • 4.4 新增服务派单
        • 4.5 新增客户服务费
        • 五、免责说明

          一、摘要

          1.1 项目介绍

          基于JAVA+Vue+SpringBoot+MySQL的河南软件客服系统,包含了客户信息维护模块、客户跟进记录模块、客户服务费模块、售后服务单模块、客服统计分析模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,河南软件客服系统基于角色的访问控制,给客服主管、普通客服使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

          1.2 项目录屏


          二、功能模块

          2.1 系统管理人员

          包括系统维护,基础资料维护、统计分析/报表导出、系统登录、企业资源导入等功能;主要体现在系统的运行保障上面;数据统计导出相关报表,可让领导即时了解客户跟进情况,提取有用的信息转化成商机(销售软件、升级、加站等)﹐直接或者间接提升公司效益。

          1. 系统维护:用户管理(系统管理员、客服入员、资源分派员、技术服务等;包含基本信息、所属部门、角色、联系方式等)﹐数据字典维护,系统日志审计等。
          2. 基础资料维护:客户资料维护(包含企业名称、详细地址、企业社会信用码、注册日期、区域、法人、法人电话、财务、财务电话、出纳、出纳电话、所属行业、运营状态、跟进状态等))、部门、角色等。客户资料可手工录入亦可使用 Excel 根据制定的模板批量导入(通过一些渠道获取的大批量企业信息);
          3. 统计分析/报表导出:生成跟进汇总统计报表,可按日期时间段、客服人员、跟进进度等进行统计,可统计服务费收取情况、服务费到期情况、技术服务派单情况、商机转化情况,可导出Excel、PDF文件留档;
          4. 系统登录:系统管理员和业务员登录认证功能:根据登录用户的角色不同,所拥有的权限不同,显示不同的页面内容。
          5. 客户资源分派维护:客户资料可依据多种条件进行筛选(基本资料各个字段皆可作为条件任意组合进行正向或反向筛选,还需要根据分派情况正向或反向筛选),然后给客服人员进行分派;跟进不理想的资源可收回重新分派。
          6. 服务费审核:生成服务费流水账表,由财务人员进行对账审核;审核过之后才能计入对应客服的业绩。

          2.2 业务操作人员

          主要包括客户信息维护、服务费收取、客户跟进维护、售后服务、服务派单、客户评价等;成交客户反馈问题后,由客服人员录入系统,客服经理收到信息提示,然后进行服务派单,完成后由技术人员录入解决情况汇总到该客户档案中;资源池中客户被分派给跟进人进行电话跟进,根据情况转化成商机。

          1. 客户信息维护:客服人员收集到一些客户信息录入系统,有些信息可能有误或者企业信息变更,在跟进过程中可以进行修改调整,修改过程历史记录保留,可进行回查复核。添加企业联系人和电话,定期计算联系电话任职于几个企业,可查询相关联的企业信息。
          2. 客户跟进维护:客服人员定期主动电话联系客户,沟通信息化需求或者使用过程中的问题,记录跟进情况和维护跟进进度(跟进进度:启新老客户、已用金蝶、已用用友、已用其他软件、意向客户、长期跟进、暂无需求、其他)。历史记录保留可查,每次跟进人、跟进情况、跟进时间等。
          3. 服务费收取:成交客户可查看成交记录和服务费收取记录,以及服务费到期时间,服务费即将到期的客户要有消息提醒和一键查询功能,服务费逾期客户红色标注,收取服务费后录入系统,提示后台进行服务费审核对账。
          4. 售后服务:客服接到成交客户的咨询或者问题反馈后可快速查询定位到客户,调出客户档案和跟进历史记录,将客户多描述情况汇总录入系统,提交给客服经理,客户经理收到问题反馈,初步评估之后分派给技术服务人员跟进解决(亦可客服经理亲自解决),技术人员解决后将解决情况录入系统,该问题关闭。
          5. 回访评价:客户的问题解决后,由客服人员进行回访,根据客户反馈的情况对技术人员的服务态度、技术能力、回应速度等进行客观评价(很满意、满意、一般、有待改善)。

          三、系统展示

          【开源】基于JAVA的河南软件客服系统,在这里插入图片描述,第1张

          【开源】基于JAVA的河南软件客服系统,在这里插入图片描述,第3张

          【开源】基于JAVA的河南软件客服系统,在这里插入图片描述,第4张

          【开源】基于JAVA的河南软件客服系统,在这里插入图片描述,第5张

          【开源】基于JAVA的河南软件客服系统,在这里插入图片描述,第6张

          【开源】基于JAVA的河南软件客服系统,在这里插入图片描述,第7张

          【开源】基于JAVA的河南软件客服系统,在这里插入图片描述,第8张

          【开源】基于JAVA的河南软件客服系统,在这里插入图片描述,第9张


          四、核心代码

          4.1 查询客户

          @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
          @ApiOperation(value = "查询客户")
          public Result> getByPage(@ModelAttribute Customer customer ,@ModelAttribute PageVo page){
              QueryWrapper qw = new QueryWrapper<>();
              if(!ZwzNullUtils.isNull(customer.getCompanyName())) {
                  qw.like("company_name",customer.getCompanyName());
              }
              if(!ZwzNullUtils.isNull(customer.getTrade())) {
                  qw.like("trade",customer.getTrade());
              }
              if(!ZwzNullUtils.isNull(customer.getStatus2())) {
                  qw.eq("status2",customer.getStatus2());
              }
              if(!ZwzNullUtils.isNull(customer.getMobile1())) {
                  qw.and(wrapper -> wrapper.eq("mobile1", customer.getMobile1()).or().eq("mobile1",customer.getMobile1()).or().eq("mobile3",customer.getMobile1()));
              }
              IPage data = iCustomerService.page(PageUtil.initMpPage(page),qw);
              return new ResultUtil>().setData(data);
          }
          

          4.2 新增客户跟进情况

          @RequestMapping(value = "/addOne", method = RequestMethod.GET)
          @ApiOperation(value = "新增单条客户跟进")
          public Result addOne(@RequestParam String id,@RequestParam String level,@RequestParam String content){
              Customer customer = iCustomerService.getById(id);
              if(customer == null) {
                  return ResultUtil.error("客户不存在");
              }
              CustomerItem customerItem = new CustomerItem();
              customerItem.setCustomerId(customer.getId());
              customerItem.setCustomerName(customer.getCompanyName());
              customerItem.setLevel(level);
              customerItem.setContent(content);
              User currUser = securityUtil.getCurrUser();
              customerItem.setUserId(currUser.getId());
              customerItem.setUserName(currUser.getNickname());
              customerItem.setTime(DateUtil.now());
              iCustomerItemService.saveOrUpdate(customerItem);
              return ResultUtil.success();
          }
           
          

          4.3 查询客户历史

          @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
          @ApiOperation(value = "查询客户历史")
          public Result> getByPage(@ModelAttribute CustomerHistory customerHistory ,@ModelAttribute PageVo page){
              QueryWrapper qw = new QueryWrapper<>();
              if(!ZwzNullUtils.isNull(customerHistory.getCompanyName())) {
                  qw.like("company_name",customerHistory.getCompanyName());
              }
              IPage data = iCustomerHistoryService.page(PageUtil.initMpPage(page),qw);
              return new ResultUtil>().setData(data);
          }
          

          4.4 新增服务派单

          @RequestMapping(value = "/addOne", method = RequestMethod.GET)
          @ApiOperation(value = "新增单条服务派单")
          public Result addOne(@RequestParam String id,@RequestParam String content){
              Customer customer = iCustomerService.getById(id);
              if(customer == null) {
                  return ResultUtil.error("客户不存在");
              }
              ServiceOrder serviceOrder = new ServiceOrder();
              serviceOrder.setCustomerId(customer.getId());
              serviceOrder.setCustomerName(customer.getCompanyName());
              serviceOrder.setContent(content);
              User currUser = securityUtil.getCurrUser();
              serviceOrder.setStatus("未派单");
              serviceOrder.setUserId(currUser.getId());
              serviceOrder.setUserName(currUser.getNickname());
              serviceOrder.setWorkId("");
              serviceOrder.setWorkName("");
              serviceOrder.setReplyContent("");
              serviceOrder.setAppraiseLevel("");
              serviceOrder.setAppraiseContent("");
              iServiceOrderService.saveOrUpdate(serviceOrder);
              return ResultUtil.success();
          }
           
          

          4.5 新增客户服务费

          @RequestMapping(value = "/addOne", method = RequestMethod.GET)
          @ApiOperation(value = "新增客户服务费")
          public Result addOne(@RequestParam String id,@RequestParam String startDate,@RequestParam String endDate,
                                              @RequestParam BigDecimal price){
              Customer customer = iCustomerService.getById(id);
              if(customer == null) {
                  return ResultUtil.error("客户不存在");
              }
              User currUser = securityUtil.getCurrUser();
              ServicePrice servicePrice = new ServicePrice();
              servicePrice.setCustomerId(customer.getId());
              servicePrice.setCustomerName(customer.getCompanyName());
              servicePrice.setStartDate(startDate);
              servicePrice.setEndDate(endDate);
              servicePrice.setPrice(price);
              servicePrice.setStatus("未审核");
              servicePrice.setUserId(currUser.getId());
              servicePrice.setUserName(currUser.getNickname());
              servicePrice.setTime(DateUtil.now());
              iServicePriceService.saveOrUpdate(servicePrice);
              return ResultUtil.success();
          }
           
          

          五、免责说明