報銷單業務筆記

文章目錄


報銷單是個通用場景,有通用邏輯,在此基礎上進行適度定制,省時省力,所以記錄下吧。

涉及的實體。
報銷單
發票(用來報銷)

總體是多對多關系,單次請求是一對多關系。

業務點

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.pswp.cn/news/905713.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/905713.shtml
英文地址,請注明出處:http://en.pswp.cn/news/905713.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

25軟考【軟件評測師】:10天極限沖刺攻略(附知識點解析+沖刺攻略)

距離2025上半年“軟件評測師”考試已經只剩最后一周多了,還沒有準備好的小伙伴趕緊行動起來。為了幫助大家更好的沖刺學習,特此提供一份考前沖刺攻略。本指南包括考情分析、沖刺攻略兩個部分,可以參考此指南進行最后的復習要領,相…

python 的 ?uv、pip? 和 ?conda? 對比和技術選型

你好,我是 shengjk1,多年大廠經驗,努力構建 通俗易懂的、好玩的編程語言教程。 歡迎關注!你會有如下收益: 了解大廠經驗擁有和大廠相匹配的技術等 希望看什么,評論或者私信告訴我! 文章目錄 一…

Python logging模塊使用指南

Python 的 logging 模塊是一個靈活且強大的日志記錄工具,廣泛應用于應用程序的調試、運行監控和問題排查。它提供了豐富的功能,包括多級日志記錄、多種輸出方式、靈活的格式配置等。以下是詳細介紹: 一、為什么使用 logging 模塊?…

開發技術.前端開發相關問題

第一部分 響應式布局 1. 幾個布局單位概念 PX: px像素(Pixel) 相對長度單位。像素px是相對于顯示器屏幕分辨率而言的。 PX特點 1. IE無法調整那些使用px作為單位的字體大小; 2. 國外的大部分網站能夠調整的原因在于其使用了em或rem作為字體…

1. Go 語言環境安裝

👑 博主簡介:高級開發工程師 👣 出沒地點:北京 💊 人生目標:自由 ——————————————————————————————————————————— 版權聲明:本文為原創文章&#xf…

WPF自定義控件開發全指南:多內容切換與動畫集成

WPF自定義控件開發全指南:多內容切換與動畫集成 一、控件基礎架構設計1.1 選擇控件基類1.2 定義關鍵屬性 二、動畫系統集成2.1 淡入淡出動畫實現2.2 滑動動畫實現 三、視覺狀態管理四、完整使用示例4.1 XAML聲明4.2 動畫觸發邏輯 五、擴展與優化5.1 性能優化建議5.2…

數據結構 -- 順序查找和折半查找

查找的基本概念 基本概念 查找:在數據集合中尋找滿足某種條件的數據元素的過程 查找表(查找結構):用于查找的數據集合稱為查找表,它由同一類型的數據結構元素(或記錄)組成 關鍵字&#xff1…

汽車功能安全--TC3xx MBIST設計要點

英飛凌針對硬件故障的自測,提供了四種機制:PBIST、LBIST、MONBIST和MBIST。 LBIST和MONBIST我們已經聊過了,今天就快速介紹下MBIST。 MBIST,全程Memory Built-in Self Test,用于檢測SRAM數據單元的完整性。 在26262…

openpi 入門教程

系列文章目錄 目錄 系列文章目錄 前言 一、運行要求 二、安裝 三、模型檢查點 3.1 基礎模型 3.2 微調模型 四、運行預訓練模型的推理 五、在自己的數據上微調基礎模型 5.1. 將數據轉換為 LeRobot 數據集 5.3. 啟動策略服務器并運行推理 5.4 更多示例 六、故障排除…

java加強 -Collection集合

集合是一種容器,類似于數組,但集合的大小可變,開發中也非常常用。Collection代表單列集合,每個元素(數據)只包含1個值。Collection集合分為兩類,List集合與set集合。 特點 List系列集合&#…

深入理解ThingsBoard的Actor模型

1、ThingsBoard系統中定義了哪些Actor ? ThingsBoard Actor 創建機制與作用對照表: Actor 類型 何時創建 由誰創建 是否緩存 作用描述 SystemActor 系統啟動時 DefaultActorService / ActorSystem ? 是 ★ ThingsBoard 平臺服務級別管理器:負責創建所有的Actor AppActor

WPS一旦打開,就會修改默認打開方式,怎么解?

目錄 前言 解決方法 結語 前言 電腦上同時存在WPS和微軟的Office全家桶,但是我更喜歡用Office全家桶。前幾天剛在設置改過來,忘記更改pdf文件打開默認應用。結果沒過幾天,不小心用WPS打開pdf文件時候,給我把默認設置全改回去了…

深度學習中--模型調試與可視化

第一部分:損失函數與準確率的監控(Loss / Accuracy Curve) 1. 為什么要監控 Loss 與 Accuracy? Loss 是模型優化的依據,但它可能下降了 Accuracy 反而沒變(過擬合信號) Accuracy 才是評估效果的…

中間件-RocketMQ

RocketMQ 基本架構消息模型消費者消費消息模式順序消息機制延遲消息批量消息事務消息消息重試最佳實踐 基本架構 nameServer: 維護broker列表信息,客戶端連接時只需要連接nameServer。可配置成集群。 broker:broker分為master和slave,master負…

anaconda3如何切換虛擬環境

在 Anaconda3 中切換虛擬環境可以通過 命令行 或 Anaconda Navigator 圖形界面實現。以下是詳細步驟: 方法1:通過命令行切換(推薦) 1. 查看所有虛擬環境 conda env list # 或 conda info --envs 輸出示例: base …

【vue】axios網絡請求介紹

一、基礎使用 1.引入js文件 2.在methods中的函數里寫 axios.get(路徑) .then((res))>{ console.log(res.data);//控制臺打印結果數據 this.listArrres.data//定義數組來接收返回來的數據 }) 二、參數傳遞 參數傳遞一般在路徑后面使用 params:{ num:2,…

機器學習 --- KNN算法

機器學習 — KNN算法 文章目錄 機器學習 --- KNN算法一,sklearn機器學習概述二,KNN算法---分類2.1樣本距離判斷2.2 KNN算法原理2.3 KNN缺點2.4 API2.5 使用sklearn中鳶尾花數據集實現KNN 一,sklearn機器學習概述 獲取數據、數據處理、特征工…

Spring Boot 中的重試機制

Retryable 注解簡介 Retryable 注解是 Spring Retry 模塊提供的,用于自動重試可能會失敗的方法。在微服務架構和分布式系統中,服務之間的調用可能會因為網絡問題、服務繁忙等原因失敗。使用 Retryable 可以提高應用的穩定性和容錯能力 1。 使用步驟 &…

FPGA生成隨機數的方法

FPGA生成隨機數的方法,目前有以下幾種: 1、震蕩采樣法 實現方式一:通過低頻時鐘作為D觸發器的時鐘輸入端,高頻時鐘作為D觸發器的數據輸入端,使用高頻采樣低頻,利用亞穩態輸出隨機數。 實現方式二:使用三個…

(五)毛子整潔架構(分布式日志/Redis緩存/OutBox Pattern)

文章目錄 項目地址一、結構化日志1.1 使用Serilog1. 安裝所需要的包2. 注冊服務和配置3. 安裝Seq服務 1.2 添加分布式id中間件1. 添加中間件2. 注冊服務3. 修改Application的LoggingBehavior 二、Redis緩存2.1 添加緩存1. 創建接口ICaching接口2. 實現ICaching接口3. 注冊Cachi…