1.立项背景与目标
在检邀与检测业务快速扩张的背景下,传统人工排班与工单分配方式已无法满足高效运营的需求。区域划分模糊、检测师排班不透明、检邀下单盲目、工单路线规划不合理等问题频发,导致工单分配不均、检测师频繁折返、客户等待时间过长,严重制约了业务增长与服务体验。
为解决上述痛点,我们立项开发了“地图排班排线系统”。目标是通过可视化地图与智能排班机制,实现检测区域精准配置、检测师排班灵活管理、检邀下单实时可视、工单路径智能规划,全面提升检邀转化效率与检测师作业效能,打造标准化、智能化、可视化的检邀检测一体化调度平台。
2.软件功能
系统围绕“区域—人员—工单—路线”四大核心要素,构建了完整的排班排线闭环。主要功能包括:
检测区域配置:支持城市端灵活绘制上门、到店、远程区域,区域数据实时同步,减少人工沟通成本。
检测师管理:支持区域人员设置、调班管理、交通工具配置,实现每日检测师排班可视化。
检邀CRM集成:在呼叫线索与下检测工单环节,实时展示检测师排班、空闲时段、实时位置与预计路程时间,帮助检邀人员快速匹配最优检测师。
检测经理APP:提供派单页面,支持检测经理查看检测师工单情况,支持调单、强制派单,保障紧急工单的灵活处理。
检测配置:支持城市级检测时长与默认交通工具配置,统一服务标准。
3.核心功能介绍
系统最大的亮点在于“检邀下单可视化”与“检测师智能排线”。检邀人员在沟通客户时,可实时查看检测师当前工单状态、实时位置及排班空闲时段,系统自动预估路程时间与检测时长,辅助检邀人员精准约定检测时间,避免工单冲突与无效等待。检测经理端则支持全局视角下的工单调度,可跨区域、跨时段灵活调配资源,确保工单响应效率最大化。
4.业务流程描述
业务流程贯穿检邀、调度、检测三大角色。检邀人员根据客户定位与系统推荐,选择检测方式并查看周边检测师排班与实时位置,选择空闲时段下单。检测经理在APP端接收工单,可选择系统推荐检测师或手动派单,支持调班与紧急派单。检测师通过移动端接收工单,完成检测后系统自动回显实际检测时间,形成工单闭环。整个过程实现从线索到工单、从调度到完成的端到端数字化管理。
1.整体架构设计思路
本项目采用前后端分离的微服务架构,围绕“高可用、可扩展、实时性”三大目标进行设计。整体架构划分为接入层、业务层、数据层与基础服务层。
接入层:通过Nginx反向代理与API网关统一管理流量入口,实现鉴权、限流、路由转发,保障系统稳定与安全。
业务层:按领域拆分为区域配置服务、排班管理服务、工单调度服务、实时位置服务、用户权限服务等独立微服务模块,服务间通过OpenFeign进行通信,确保高内聚低耦合,便于独立迭代与水平扩展。
数据层:采用读写分离与分库分表策略,核心业务数据使用MySQL存储,结合Redis缓存热点数据(如检测师排班、实时位置),降低数据库压力,提升查询效率。
基础服务层:集成高德地图API实现区域绘制、路径规划与距离计算;通过WebSocket实现检测师实时位置上报与工单状态推送;引入消息队列(RabbitMQ)处理工单流转、状态变更等异步任务,确保数据最终一致性。
在实时性方面,系统通过定时任务与Redis缓存相结合,实现检测师排班数据的秒级刷新;在地图交互场景下,通过前端异步加载与后端数据聚合,保证页面响应时间在300ms以内。
技术栈
后端框架:Spring Boot + Spring Cloud Alibaba(Nacos作为注册中心与配置中心),实现服务治理与配置统一管理。
持久层:MyBatis-Plus作为ORM框架,结合ShardingSphere实现分库分表与读写分离。
缓存:Redis集群,用于存储检测师排班、实时位置、用户会话等高频访问数据。
消息队列:RabbitMQ,用于工单创建、状态同步、日志记录等异步解耦场景。
实时通信:WebSocket + Netty,实现检测师位置上报与工单实时推送。
调度任务:XXL-JOB,用于定时刷新检测师排班、清理过期数据。
数据库:MySQL 8.0,主从架构,保障数据高可用。
第三方服务:高德地图API,用于区域绘制、路径规划、距离计算。