調撥單執行遇到庫存不夠時,如何設計功能邏輯?從數據結構的角度看,常規思路是:計劃+分批執行的方式,分別建立調撥計劃表和實際調撥表。該思路數據結構清晰明確,開發邏輯也不復雜。很容易被認為是優選設計方案。
但是,當我們深入分析這個場景的出現概率時,會發現大多數或絕大多數調撥單都是一次性調撥,多次調撥的概率很低。那么對于低概率場景,多做一套表并不符合奧卡姆原則:除非必要、勿增實體。而且這種結構會讓大概率的單次調撥產生冗余數據、冗余理解和操作。所以,我們應該繼續去找更優化的設計方案。
這個優化的設計方案應該符合如下規則:1.單次調撥必須最簡操作;2.多次調撥操作也需要足夠簡單;3.盡可能不新建數據表,簡化數據結構。基于此三點,超兔CRM重新抽象設計的解決方案為:拆分調撥法。
超兔CCRM的拆分調撥,核心操作如下:
1)倉庫調撥單確定好調撥明細,作為原單;
2)點擊拆分調撥;
3)進入拆分調撥單,編輯拆分數量,保存。
該功能亮點:
① 保證單次調撥操作最簡,多次調撥足夠簡單;
② 沒有新表新概念的理解,容易上手;
③ 每次調撥都是出入對應,數據清晰明確;
④ 拆分日志方便回溯,準確可靠。