一,订单中心
1,调拨单
融通(Rocketmq)-订单中心:ECC_BMS123(已出单),125(分配),127(发货),129(收货)
通过RocketMq接入多场景订单数据
2,销售单
sap(FTP)-订单中心,下发1002,1003,1004接口
Job定时读取FTP XML文件,解析,各订单类型实现自己的业务
类型:sap bms b2b shibai;连接不同FTP,读取不同业务类型路径下数据,下载,解析,不同订单各自处理,移动已处理文件。设计模式:枚举 + 策略 + 模版
3,主数据替换
所有主数据替换,原来查询数据库,现在统一查询商品接口,查询Redis或者ES
【调拨单】
数据层级:供应商 采购组织 大区 门店 商品分类 商品 。门店:商品 1:N
1.1,店间调拨单下传ECC_BMS123
【正常流程】
● 落原始数据
状态流:延时待处理/延时已处理/未使用/已使用/延时异常数据
说明:入库门店商品信息不存在,下发门店商品信息小于实际查询到的门店商品信息(延时待处理,流程结束,否则未使用)
● 主数据查询,组装数据,分批查询2000一批
查询商品中心,门店商品
查询供应商中心,根据供应商编码和采购组织查询方案组
查询价格中心,根据供应商门店商品
● 组装数据并写入订单明细跟踪(核心跟踪订单整个流程)
状态流:80-已取消 10 -待审核 20 -已审核 30 -已出单 40 -待发货/已分配 50 -待收货 60 -已收货 70 -已完成
初始状态:已出单
A:分表,根据大类分表,生鲜11 食百1213
B:订单明细跟踪同步ES,批量操作
● 增加在途
A:通过MQ发送库存中心更新库存信息(Topic/tags/source/key/msg)
B:异常消息记录,异常或者发送结果状态非OK,封装多种场景
C:JOB定时批量补偿异常消息,重新发送
【异常流程】
1,JOB检查123异常数据,补偿处理,门店商品数据是否正常
2,超过3天未处理,同步异常单数据到ES
3,补偿细节:
每次处理一定的量10条;
查询订单号,再根据订单号查询数据,充分利用索引;
限定创建时间,近期;
根据更新时间排序,循环处理
1.2,店间调拨单出库单出库数量上传 125
【正常流程】
查询123基础数据,检查数据完整性
检查下发数量和申请数据(123)是否一致,否,同步ES异常数据
查询订单明细跟踪,并更新
更新123状态为已使用,乐观锁
扣减库存,MQ,正向/反向库存标识,加或者减
【异常单流程】
JOB补偿
1.3,SAP销售退货单的DN下传云POS & 店间调拨过账后的交货单下传
1.4,店间调拨入库单的入库数量上传
- 销售单:sap(FTP),以1004为例,下发发货指令
发货单商品数量,订单维度匹配订单明细跟踪该订单号所有明细商品数量。
场景:下发0->直接关单;匹配->完成订单;不匹配->延时数据,JOB定时处理
更新订单明细跟踪
更新库存MQ
二,独立活动类
1,生鲜价格动态:app活动
2,咏悦汇酒会(独立设计开发):app活动,门店茅台,洋酒,百威暗码换购活动
三,报表
1,商品资料非实时报表:大数据通过binlog同步主数据到es,批量查询多个索引数据。
2,巡检报表:查询es数据,大数据推送数据到es,根据不同维度分组,求和,聚合求和,聚合求和后再合计,聚合后排序,总计,分页(from/search_after)。
四,渠道/商品中心
对接云创系统:渠道标识同步云创。云创系统-渠道中心(MQ)-渠道同步中心
封装大量es查询接口
五,爬虫
重构大数据爬虫框架,使用java Gecco框架二次开发。
1.爬取内容:朴朴,多点,每日优化,京东,盒马鲜生
2.数据处理:抓取数据发送kafka消息,推送给大数据。flume消费kafka消息到hdfs,同步到hive,hue查看数据。3.代理ip处理