本帖最后由 谷粒姐姐 于 2018-3-29 14:07 编辑
四、 客户下单服务器代码实现 1. 自动分单逻辑分析
自动分单逻辑: 1、 在基础数据模块,实现 定区关联客户 ,客户【地址】已经与定区【快递员】进行过关联 , 当下单地址与客户地址完全一致时,找到下单客户信息,找到匹配定区,找到快递员 ,自动分单成功 2、 如果下单地址没有与 CRM 客户地址完全一致,从下单信息中 省、市、区 匹配区域信息,分区属于区域 ,获取区域中所有分区信息 ,获取分区关键字、辅助关键字,下单地址匹配分区关键字/辅助关键字,找到分区,通过分区找到定区,找到匹配快递员, 自动分单成功 3、 上面业务逻辑都没有实现, 则进入人工调度 当订单匹配快递员成功后,系统都将自动生成工单信息【快递员取件任务】,将短信方式,通知快递员,进行取件 2. 实现后台系统自动分单 2.1. 前端表单提交,基于 WebService 将数据传递后台系统
自动解析封装
1、 在 bos_fore 系统,添加 OrderAction 封装订单数据 2、 修改 bos_domain 工程 @RootXmlElement 注解
别忘了 maven install 3、 在 bos_manangement 中添加 OrderService 发布 WebService
配置 applicationContext-webService.xml 4、 完善 bos_fore 的 OrderAction 代码,调用 WebService 2.2. 自动分单逻辑 -- 基于 CRM 地址完全匹配自动分单 将寄件人下单地址 ,以 webService 方式,发送 CRM 地址库获取 对应客户关联 定区 1、 在 crm_management 中 CustomerService 添加根据地址 获取定区编码方法
DAO 实现 2、 修改 bos_management 的 OrderService 订单 DAO 编写 2.3. 自动分单逻辑 -- 基于分区关键字匹配自动分单 基于省市区 查询 区域对象 修改业务层代码
2.4. 自动分单成功,生成工单发送短信,否则进入人工分单 自动分单成功,生成工单,发送短信 工单 DAO 发送短信 ,将 bos_fore 的 applicationContext-mq.xml 复制 bos_management 在 applicationContext.xml 引入 mq
自动分单失败,进入人工调度
3. 客户下单,自动分单,生成工单 发送短信 演示 1、 启动相关系统 客户下单 bos_fore 前端系统 将订单数据发送到服务器 bos_management 自动分单,CRM 地址库完全匹配 crm_management 生成工单,发送短信 activeMQ , 短信平台获取消息发送短信 bos_sms 2、 CRM 地址库完全匹配 准备数据 crm 表 匹配 CRM 完成地址,找到定区编号,找到快递员 3、 分区关键字 自动分单匹配 准备 area 表完整省市区数据 area.xls (先删除之前的区域数据 ) 分区数据 错误: 19:09:41,485 WARN JAXRSUtils:522 - No operation matching request path "/crm_management/services/customerService/findFixedAreaIdByAddress" is found, Relative Path: /findFixedAreaIdByAddress, HTTP Method: GET, ContentType: */*, Accept: application/json,. Please enable FINE/TRACE log level for more details. 19:09:41,564 WARN WebApplicationExceptionMapper:73 - javax.ws.rs.ClientErrorException: HTTP 404 Not Found BOS 系统访问 CRM 路径错误 解决: 修改 OrderServiceImpl 错误:Caused by: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : cn.itcast.bos.domain.take_delivery.Order.recArea -> cn.itcast.bos.domain.base.Area 解决: 错误: Caused by: java.util.NoSuchElementException at java.util.HashMap$HashIterator.nextNode(HashMap.java:1439) at java.util.HashMap$KeyIterator.next(HashMap.java:1461) 解决:
|