【技术实现步骤摘要】
基于RocketMQ实现采购发票与进项发票的拆表和同步方法及装置
[0001]本申请涉及数据处理
,尤其是一种基于
RocketMQ
实现采购发票与进项发票的拆表和同步方法及装置
。
技术介绍
[0002]采购发票与进项发票是数据库中
invoice(
发票
)
表的同一条数据,只是在
DAO
层通过
invoice
表的
state
属性作为区分查询条件
。
在采购系统早期,进项发票与采购发票业务多数重合且冲突较少,同时数据量和相关业务的
。
[0003]但是随着采购发票业务与进项发票业务的不断深入细化,两个业务之前的冲突不断加剧,比如新增的部分类型进项发票
(
如,费用类发票
)
不需要参与采购业务数据匹配,所以该类型不属于采购发票
。
若沿用原有方案需查询采购发票,则需要在
DAO
层添加
invoice_type(
发票类型
)
属性
。
类似的情况如果继续发生,同时实现方案不做改变,那么后续在
DAO
层的代码会混乱到无法管理的程度,而依赖
DAO
层的
Service
层以及之上的其它实现代码的混乱程度可想而知
。
技术实现思路
[0004]本申请的目的在于克服现有技术不足中采购发票与 ...
【技术保护点】
【技术特征摘要】 【专利技术属性】
1.
一种基于
RocketMQ
实现采购发票与进项发票的拆表和同步方法,其特征在于,包括:在采购发票审批通过后调用
afterComplete()
方法,其中,所述
afterComplete()
方法用于集中调用在发票审批通过后执行的任务;在所述
afterComplete()
方法中,根据采购发票创建出进项发票对象;在所述
afterComplete()
方法中,将所述进项发票对象转换为
JSON
文本,将所述
JSON
文本插入到
MQ
消息中,并将所述消息发送出去;接收所述消息并对进项发票进行异步同步
。2.
根据权利要求1所述的基于
RocketMQ
实现采购发票与进项发票的拆表和同步方法,其特征在于,在所述
afterComplete(...)
方法中,通过调用
accountPayableInvoiceService.createApInvoice DtoByInvoice(...)
方法来根据采购发票创建出进项发票对象
。3.
根据权利要求1所述的基于
RocketMQ
实现采购发票与进项发票的拆表和同步方法,其特征在于,在所述
afterComplete()
方法中,调用
apInvoiceEventNotifier.notify()
方法将进项发票对象通过
FastJSON
转换为
JSON
文本,将所述
JSON
文本插入到
MQ
消息中并发送
。4.
根据权利要求1所述的基于
RocketMQ
实现采购发票与进项发票的拆表和同步方法,其特征在于,所述接收所述消息,包括:通过
messageConsumer.subscribe()
方法监听消息;响应于监听到新的
MQ
消息可以消费,则调用
distribute()
方法通过消息
Message
的
tag
属性分别将不同
tag
的消息分配给对应的处理方法,其中,所述处理方法为
handleEvent()
方法
。5.
根据权利要求4所述的基于
RocketMQ
实现采购发票与进项发票的拆表和同步方法,其特征在于,所述
技术研发人员:何建东,叶少宁,李翔,魏美钟,
申请(专利权)人:杭州每刻科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。