当前位置: 首页 > news >正文

报销单业务笔记

文章目录


报销单是个通用场景,有通用逻辑,在此基础上进行适度定制,省时省力,所以记录下吧。

涉及的实体。
报销单
发票(用来报销)

总体是多对多关系,单次请求是一对多关系。

业务点

1、号码列表不能重复。

业务点-对公对私

对私 一张发票只允许一张单据号占用。
对公 不进行对私校验。

业务点-多系统标志

允许多业务系统占用。

特殊业务

对公对私 # 对公对私
跨系统标志 # 允许多系统使用

入参

入参报文
{"documentNumber": "Document202403040001","userAccount": "a-chushiyun","sourceSystem": "crm","invoiceList": [{"invoiceCode": "1111122222","invoiceNumber": "66668888","useAmount": "1","businessTypeLh": "1"}]
}

出参

出参报文

中间的逻辑

基于这种特殊的多对多关系,中间的逻辑就比较重要了。

单据号
代码
号码
特殊业务1标志
特殊业务1反馈消息
特殊业务2标志
特殊业务2提示信息
价税合计 # 不变
已占用金额总和 # 求和
可用金额 # 直接查出

本次使用金额 # 入参传
新可用金额 #

金额正确标志 # 校验
金额正确提示信息 #

标志如果全部正确,该条记录放到成功列表。
标志如果不全部正确,该条记录放到失败列表。

可以通过sql直接查出来吗?

多对多关系

其他

应该是整体成功还是可以部分成功

从合理性来说,应该是部分成功更好,例如一个报销单10张发票,9张成功,1张不符合,那么关联9张即可,这样避免事务回滚。

成功列表
代码
号码
失败列表
代码
号码
提示信息

这种多对多关多关系有没有优雅的判断方式

单据 --1:N–> 发票列表 --1:N–> 每张发票关联的记录

全查出来再逐条判断是不是太丑陋了,而且性能超低(目前就是这么做的,好处是实现起来方便些)。

特殊业务概念可以通过分组及开窗等直接算出来,化为一个个定制字段,这样就比较简单了。
连金额等也应该可以直接算出来。

注:统计后的数据也应该是基于发票的,也就是说是多条。

相关文章:

  • 题解:P12207 [蓝桥杯 2023 国 Python B] 划分
  • 贝叶斯优化Transformer融合支持向量机多变量回归预测,附相关性气泡图、散点密度图,Matlab实现
  • 深入探索向量数据库:构建智能应用的新基础
  • vue3搭建脚手架前的前置知识
  • psycopg_pool.PoolTimeout: couldn‘t get a connection after 120.00 sec异常
  • 技术文档:变频器干扰问题与解决方案
  • 使用 QGIS 插件 OpenTopography DEM Downloader 下载高程数据(申请key教程)
  • 压电陶瓷极化-佰力博与您探讨极化工艺的重要性及极化方法。
  • Open CASCADE学习|容器及其使用
  • 2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(省赛)解题报告 | 珂学家
  • Zabbix Agent的区别与选择!
  • 鸿蒙OSUniApp制作自定义的下拉菜单组件(鸿蒙系统适配版)#三方框架 #Uniapp
  • 阿里巴巴 1688 数据接口开发指南:构建自动化商品详情采集系统
  • 【RabbitMQ】实现RPC通信的完整指南
  • MySQL——1、数据库基础
  • 25.5.15
  • homeassistant安装
  • 社区电商场景的 社群推广与维护系统化分析框架
  • MySQL如何查看某个表所占空间大小?(表空间大小查看方法)
  • 《教育退费那些事儿:从困境到破局》
  • 网易一季度净利增长三成,丁磊:高度重视海外游戏市场
  • 圆桌丨新能源车超充技术元年,专家呼吁重视电网承载能力可能面临的结构性挑战
  • 辽宁盘山县一乡镇幼儿园四名老师被指多次殴打一女童,均被行拘
  • 远洋集团:今年前4个月销售80.9亿元,同比增加13.62%
  • 125%→10%、24%税率暂停90天,对美关税开始调整
  • 《克莱默夫妇》导演罗伯特·本顿去世,终年92岁