当前位置: 首页 > 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–> 每张发票关联的记录

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

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

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

http://www.xdnf.cn/news/466975.html

相关文章:

  • 中国近代史2
  • 深度学习框架对比---Pytorch和TensorFlow
  • MySQL 学习(十)执行一条查询语句的内部执行过程、MySQL分层
  • 验证可行分享-Rancher部署文档
  • CSRF攻击 + 观测iframe加载时间利用时间响应差异侧信道攻击 -- reelfreaks DefCamp 2024
  • 第一天的尝试
  • C语言中的指定初始化器
  • java 八股
  • Opencv C++写中文(来自Gemini)
  • uniapp+vite+cli模板引入tailwindcss
  • 智慧鱼塘可视化管理:养殖业数字孪生
  • [IMX] 02.GPIO 寄存器
  • Electron 应用的升级机制详解
  • 文科生如何重新开始学习数学?
  • OGSM 从上到下逐级分解策略:从战略目标到部门计划的标准化落地路径
  • 使用 frp 实现内网穿透:从基础到进阶
  • 司法系统之外的第三方平台未经许可披露企业涉诉信息是否构成侵权
  • 学前数学思维:整体代换
  • 深度解析:如何用DeepSeek等大模型增强MySQL运维效率
  • 访问 Docker 官方镜像源(包括代理)全部被“重置连接”或超时
  • Linux系统中部署java服务(docker)
  • WSF3089 N沟道MOSFET在按摩椅中的应用分析
  • SpringBoot 3.4.5版本导入Lomobok依赖后无法生效的问题
  • 软件设计师考试《综合知识》设计模式之——工厂模式与抽象工厂模式考点分析
  • Windows软件插件-写MP4
  • 极验验证码全套接口(无感,滑块,点字,点图,语序,推理,九宫格)
  • UR5e机器人Matlab仿真
  • UI自动化测试方案详解
  • SpringAOP
  • k8s(12) — 版本控制和滚动更新(金丝雀部署理念)