黑马程序员技术交流社区
标题: 【郑州校区】bos项目笔记之chapter07_系统分析、环境搭建(5) [打印本页]
作者: 谷粒姐姐 时间: 2018-3-29 13:54
标题: 【郑州校区】bos项目笔记之chapter07_系统分析、环境搭建(5)
本帖最后由 谷粒姐姐 于 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)
解决:
作者: 金色的程序员 时间: 2018-3-29 14:13
加油加油
作者: 金色的程序员 时间: 2018-3-29 14:29
加油加油
作者: 播妞 时间: 2018-4-1 09:49
加油加油
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |