2021年訂單拆分概要設(shè)計(jì)說明書V1.0_第1頁(yè)
2021年訂單拆分概要設(shè)計(jì)說明書V1.0_第2頁(yè)
2021年訂單拆分概要設(shè)計(jì)說明書V1.0_第3頁(yè)
2021年訂單拆分概要設(shè)計(jì)說明書V1.0_第4頁(yè)
2021年訂單拆分概要設(shè)計(jì)說明書V1.0_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、受控狀態(tài):受控非受控保密級(jí)別:普通秘密 機(jī)密訂單拆分概要設(shè)計(jì)文檔文檔審批/修訂記錄文件狀態(tài): 草稿 正式發(fā)布 當(dāng)前版本:1.0作 者:須俊杰 林宏審 核 人:發(fā)布日期:日期版本編號(hào)文檔標(biāo)識(shí)簡(jiǎn)要說明著者審核者審核日期2012-05-151.0系統(tǒng)設(shè)計(jì)初稿須俊杰,林宏說明:“簡(jiǎn)要說明”主要是對(duì)修訂原因和修訂的內(nèi)容進(jìn)行簡(jiǎn)單說明。1 系統(tǒng)分析1.1 系統(tǒng)描述目前京東的商品有很多類型,有些是直接廠商送貨,有些是京東配送,而京東配送的商品又是根據(jù)商品類型存在于不同的庫(kù)房當(dāng)中。訂單拆分系統(tǒng)就是實(shí)現(xiàn)這樣一種功能,當(dāng)客戶提交訂單后,系統(tǒng)根據(jù)商品的類型將其拆分為各種子訂單,并且計(jì)算出每個(gè)子訂單的價(jià)格、優(yōu)惠等信息,

2、下游系統(tǒng)直接對(duì)子訂單進(jìn)行生產(chǎn),父訂單將會(huì)被刪除。1.2 系統(tǒng)總體流程 2 總體設(shè)計(jì)方案2.1 系統(tǒng)設(shè)計(jì)思路2.2 模塊劃分鎖定訂單拆分處理前需要更改訂單狀態(tài)為拆分中預(yù)處理查詢訂單詳情,建立緩沖區(qū)為拆分提供數(shù)據(jù)準(zhǔn)備拆分訂單過濾延保商品廠商直送訂單處理內(nèi)部訂單處理填充延保商品計(jì)算子單價(jià)格,并排序拆分后處理拆分后對(duì)各個(gè)子單進(jìn)行處理3 業(yè)務(wù)模塊設(shè)計(jì)3.1 鎖定訂單調(diào)用WebService鎖定當(dāng)前訂單,目前C#版本是直接調(diào)用DLL,后期需要求服務(wù)方提供服務(wù)或者jar包3.2 預(yù)處理注:C#版本的代碼流程中,重置庫(kù)房號(hào)以后,將訂單詳細(xì)信息克隆到OldOrder和ReferenceOrder中,作為后續(xù)流程

3、的參照物,改造的時(shí)候根據(jù)當(dāng)前設(shè)計(jì)架構(gòu)處理3.3 拆分訂單拆分總體活動(dòng)圖:1. 過濾延保商品,根據(jù)SKU的IsYb屬性判斷是否是延保商品,過濾步驟:A. 判斷所有單品集合里面是否有延保商品B. 判斷所有贈(zèng)品集合里面是否有延保商品C. 判斷所有打包集合里面是否有延保商品D. 刪除原購(gòu)物車內(nèi)對(duì)應(yīng)的延保商品E. 將對(duì)應(yīng)的延保商品放入交換區(qū)2. 判斷如果不是內(nèi)部訂單,則走廠商直送流程,每個(gè)商品形成一個(gè)子單A. 取出所有商品id,包括贈(zèng)品B. 將這些商品信息作為條件到productext中查詢,查出的商品信息即為廠商直送商品C. 從訂單中分別處理單品、贈(zèng)品、套裝,贈(zèng)品和套裝需要重新定價(jià)、重新套裝價(jià)格、重新

4、分?jǐn)偺籽b優(yōu)惠D. 每個(gè)商品形成一個(gè)子單3. 內(nèi)部訂單根據(jù)庫(kù)房進(jìn)行拆分A. 根據(jù)sku獲取庫(kù)房信息a. 首先計(jì)算商品分類b. 其次計(jì)算商品商家c. 再次計(jì)算商品庫(kù)房編號(hào)d. 最后計(jì)算商品標(biāo)簽,并放進(jìn)結(jié)果集B. 計(jì)算訂單所有的倉(cāng)庫(kù),并按倉(cāng)庫(kù)將商品集拆分,同時(shí)贈(zèng)品和套裝需要重新定價(jià)、重新套裝價(jià)格、重新分?jǐn)偺籽b優(yōu)惠刪除4. 將過濾出來的延保商品填充回去,直接填充到對(duì)應(yīng)商品所在的子單中5. 調(diào)用相關(guān)服務(wù)計(jì)算各個(gè)子單的價(jià)格6. 按價(jià)格對(duì)子單進(jìn)行排序3.4 構(gòu)建子單構(gòu)建子單時(shí)分配金額的原則:1. 總金額一定要和各子單金額和相等目前使用價(jià)格比例計(jì)算前n-1個(gè)子單應(yīng)分配金額,第n個(gè)子單金額使用(總金額-前n-1

5、金額和)計(jì)算獲得,以保證子單金額和父單金額相同2. 各個(gè)子單分配金額按照價(jià)格比例取整按照子單中基礎(chǔ)價(jià)格計(jì)算比例(會(huì)員價(jià)-返現(xiàn)-優(yōu)惠金額),按照比例分配金額時(shí),在取整的同時(shí)需要保證拆分金額為正。取整時(shí)如果不能按元取整,就按角取整,否則按分取整。3. 子單分配金額需要保證借貸關(guān)系需保證優(yōu)惠不能大于子單實(shí)際支付金額,否則計(jì)算出來的商品實(shí)際支付金額為負(fù)實(shí)際支付金額=商品會(huì)員價(jià)price-優(yōu)惠金額Discount+總運(yùn)費(fèi)TotalFee-優(yōu)惠券金額CouponDiscount-余額MoneyBalance需要嚴(yán)格按照如下順序分配將計(jì)算出各個(gè)優(yōu)惠的金額賦給子單中對(duì)應(yīng)的參數(shù)1) 分配運(yùn)費(fèi)2) 分配優(yōu)惠券3)

6、分配電信積分4)分配禮品卡5)分配余額6)分配手機(jī)紅包7)分配實(shí)際支付3.5 檢查拆分結(jié)果拆分自檢活動(dòng)圖:規(guī)則如下:1. 原購(gòu)物車需為空2. 子單數(shù)量需大于03. 用戶實(shí)際支付不能小于04. 子單和父單商品數(shù)量需相等5. 子單和父單優(yōu)惠劵金額需相等6. 子單和父單余額使用需相等7. 子單和父單運(yùn)費(fèi)需相等8. 子單和父單禮品卡金額需相等9. 子單和父單實(shí)際支付需相等10. 子單和父單factPrice需相等11. 子單和父單總金額需相等12. 子單和父單手機(jī)紅包需相等13. 子單和父單的電信積分需相等14. 廠商直送商品不能使用貨到付款支付方式15. 訂單中pop商品的商家id不能為03.6 拆

7、分后處理總體活動(dòng)圖:1. 拆分后預(yù)處理A. 設(shè)置父單屬性B. 子單屬性設(shè)置C. 如果父單是以舊換新訂單,則只將主商品所在的訂單標(biāo)記為以舊換新訂單,其余子單標(biāo)記為一般訂單D. 填充POP信息E. 寫入pop配送中心信息F. 子單如果價(jià)格為0且不是內(nèi)部訂單,則該子單拆分類型設(shè)置為6,贈(zèng)品后發(fā)2. 拆分后訂單處理A. 調(diào)用WebService取消父訂單B. 調(diào)用WebService提交子訂單,判斷子訂單如果是圖書倉(cāng),需要判斷發(fā)票開取類型什么邏輯?3. 拆分后價(jià)保處理A. 獲取價(jià)保記錄B. 更新更新父單的價(jià)保記錄(userbankdetail表),插入子單的價(jià)保日志(priceprotectlog表)

8、4. 拆分后庫(kù)房處理A. 查詢貨架位置B. 確定貨架位置C. 保存貨架位置(orders_qita表)5. 拆分后禮品卡處理調(diào)用Webservice拆分禮品卡6. 拆分后以舊換新處理將父單的以舊換新信息寫入子單(OrderExpend表)7. 拆分后插入拆單服務(wù)生成拆單服務(wù)任務(wù)拆入任務(wù)表(OrderTask)3.7 未拆分訂單處理1. 未拆分預(yù)處理A. 判斷訂單是否為廠商直送,如果為廠商直送標(biāo)記orderType。廠商直送商品的判斷條件:-1000storeid-2000B. 根據(jù)訂單是否為子單確定拆分類型splitTypeC. 調(diào)用dll填充pop商品信息D. Pop的lbp訂單需要從pro

9、ductVenderShop表中獲取配送中心,調(diào)用dll獲取機(jī)構(gòu)信息,并更新到order對(duì)象中2. 未拆分處理A. 訂單若為廠商直送商品,添加廠商發(fā)貨信息到factoryshiporder表中,不需要寫任務(wù)到轉(zhuǎn)移程序。是否刪掉了?B. 其他訂單調(diào)用dll更新訂單信息。C. 保存貨架位置:獲取子單中所有非延保商品的貨架位置,根據(jù)商品編碼,機(jī)構(gòu)及庫(kù)房id從ware表和shelfSpread表中獲得商品在對(duì)應(yīng)庫(kù)房的貨架位置,取得該子單中最遠(yuǎn)的貨架位置并將row,col更新到orders_qita表中。3. 未拆分任務(wù)處理在OrderTask表中插入一條任務(wù) TaskType = 29, Step =

10、 0, IsFinished = 0, Ver = 1, Operator = 拆單程序, RetryCount = 0, Yn = 13.8 轉(zhuǎn)移拉回拆分處理1. 拆分子單(StoreSpliter)按庫(kù)房拆分子單不同:獲得庫(kù)房id方式不同于正常拆分,是根據(jù)轉(zhuǎn)移給的信息確定的A. 根據(jù)orderid獲取訂單任務(wù)信息select * from OrderTask with(nolock) where id 8550182 and OrderId = #value# and TaskType = 506B. 將訂單任務(wù)中信息序列化出商品對(duì)應(yīng)的配送中心機(jī)構(gòu)信息2. 拆分后處理(PrepareAft

11、erSplitProcessor)拆分后預(yù)處理不需要重新獲取賀卡skuid,及pop的配送中心Id3. 未拆分訂單處理(PrepareNoSplitProcessor)未拆分預(yù)處理不需要獲取賀卡skuid,及pop的配送中心IdA. 判斷訂單是否為廠商直送,如果為廠商直送標(biāo)記orderType。廠商直送商品的判斷條件:-1000storeid-2000B. 根據(jù)訂單是否為子單確定拆分類型splitTypeC. 調(diào)用dll填充pop商品信息D. Pop商品需要更新order對(duì)象的訂單類型和機(jī)構(gòu)信息4. 拆分后對(duì)任務(wù)的處理(taskProcessor)由于轉(zhuǎn)移拉回訂單是從orderTask表中取出

12、的任務(wù),所以在執(zhí)行完拆分后,需要更新orderTask表中對(duì)應(yīng)的狀態(tài)。update OrderTask set Step = 1, IsFinished = 1,UpdateTime = getdate() where id 8550182 and OrderId = #value# and TaskType = 5064 引用的DLL目前C#代碼涉及到很多引用的DLL,系統(tǒng)轉(zhuǎn)為Java版本后,這些DLL需要提供方改成Jar包或者Webservice服務(wù),具體DLL及負(fù)責(zé)人如下:Oom 訂單中間件-張須根Submitservice 接單服務(wù)-海峰Purchase.configs 配置管理-王遠(yuǎn)Pruchase.delivery-王

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論