王輝、趙慧坤、安豐明
(上汽通用五菱汽車股份有限公司青島分公司,青島 266555)
汽車制造業(yè)轉(zhuǎn)型的方向是由單純的“生產(chǎn)制造”轉(zhuǎn)向“供應(yīng)鏈協(xié)同”,要建立快速生產(chǎn)響應(yīng)物料保障,同時保持零部件的低庫存率和高周轉(zhuǎn)率,倉儲管理系統(tǒng)的設(shè)計是其關(guān)鍵要素。在汽車制造業(yè),零部件的種類一般多達(dá)幾千甚至上萬種,供應(yīng)商幾百家,因此管理模式也多樣化。本文基于微服務(wù)架構(gòu),采用多種新技術(shù)開發(fā),實(shí)現(xiàn)以業(yè)務(wù)策略方式設(shè)計的WMS,可以根據(jù)不同零件的管理需要,以配置的方式支持業(yè)務(wù)模式的變化調(diào)整,大大提高了系統(tǒng)的業(yè)務(wù)兼容性,實(shí)現(xiàn)出入庫等作業(yè)的快速響應(yīng)。
倉儲管理系統(tǒng)在國內(nèi)起步時,大多使用更易于C/S 開發(fā)的C# .net 進(jìn)行開發(fā)。后來由于Java 和Spring 的興起,倉儲管理系統(tǒng)也開始基于SSM 或SSH 進(jìn)行開發(fā)。而隨著近年來SOA 架構(gòu)和微服務(wù)技術(shù)體系的發(fā)展和完善,各個行業(yè)的系統(tǒng)均開始逐漸使用微服務(wù)架構(gòu)來開發(fā),倉儲行業(yè)也不例外。微服務(wù)架構(gòu)的應(yīng)用,將會使傳統(tǒng)單體架構(gòu)在開發(fā)中遇到的許多難題(如集體開發(fā)沖突、代碼耦合度太高等)迎刃而解[1]。
本文中主要介紹使用微服務(wù)架構(gòu)的系統(tǒng)設(shè)計方案,這是近年來興起的一種軟件架構(gòu),是由面向服務(wù)架構(gòu)(SOA)發(fā)展來的。它將傳統(tǒng)的單體架構(gòu)根據(jù)不同的需求拆分成多個小的項(xiàng)目,也就是微服務(wù)。每個微服務(wù)之間相互獨(dú)立,將傳統(tǒng)項(xiàng)目的各個業(yè)務(wù)之間進(jìn)行解耦。
零部件物流每日的出入庫作業(yè)、庫存轉(zhuǎn)移等業(yè)務(wù)量最高能達(dá)到2 萬箱,料箱級管理的WMS 系統(tǒng),對于系統(tǒng)的可用性需求、功能性需求和質(zhì)量需求等要求較高。因此本文中系統(tǒng)設(shè)計時使用了較多的行業(yè)先進(jìn)技術(shù),以提高系統(tǒng)性能及穩(wěn)定性,滿足業(yè)務(wù)需求。主要使用的技術(shù)如下。
(1)MySQL 數(shù)據(jù)庫:數(shù)據(jù)庫只做存儲,不參與任何業(yè)務(wù)計算,提升讀寫性能。
(2).NET6 開發(fā)語言:擁有較之前版本更強(qiáng)的性能、穩(wěn)定性和生態(tài)優(yōu)勢??鐬g覽器、云端、桌面、物聯(lián)網(wǎng)設(shè)備和移動平臺,所有應(yīng)用程序都可以使用相同的.NET 庫輕松進(jìn)行代碼共享。性能全面提升特別是文件 I/O 的性能提升,這可以顯著降低執(zhí)行時間、等待時間以及降低內(nèi)存等資源的使用率。ASP.NET Core 中引入最小化API,用以簡化入門體驗(yàn)同時可以提高 HTTP 服務(wù)的性能等。添加HTTP/3 支持以便ASP.NET Core、HttpClient 和gRPC 等服務(wù)都可以與HTTP/3 客戶端或服務(wù)器進(jìn)行交互[2]。
(3)緩存技術(shù):WMS 部分功能采用緩存技術(shù),使部分請求減少數(shù)據(jù)庫訪問,以縮短業(yè)務(wù)處理時間。
(4)定時作業(yè)技術(shù):采用毫秒級誤差的定時任務(wù)執(zhí)行程序,可以確保定時的任務(wù)可以在預(yù)定的時間執(zhí)行。
(5)Jenkins 自動化部署機(jī)制:Jenkins 是一款功能豐富、易于使用、高度可擴(kuò)展的自動化構(gòu)建工具。它可以幫助團(tuán)隊(duì)提高效率和生產(chǎn)力,同時保證軟件質(zhì)量。在軟件開發(fā)過程中,使用Jenkins 可以實(shí)現(xiàn)自動化構(gòu)建、部署和測試,從而節(jié)省時間和成本,提高團(tuán)隊(duì)效率和競爭力[3]。
(6)K8S:可以自動管理容器的擴(kuò)展和縮容,使得項(xiàng)目能夠應(yīng)對高流量的壓力。K8S 可以自動保證容器的高可用性,在容器故障時自動重啟容器;可以自動管理容器的資源(如 CPU 和內(nèi)存),避免資源浪費(fèi);可以方便地管理容器的版本和更新,使得項(xiàng)目的維護(hù)變得簡單;還可以支持微服務(wù)架構(gòu),將一個大型應(yīng)用拆分成多個獨(dú)立的服務(wù),提高可維護(hù)性和可擴(kuò)展性[4]。
(7)超融合技術(shù):基于通用x86 服務(wù)器的全資源融合、按需橫向擴(kuò)展、全分布式架構(gòu)以及開箱即用等技術(shù),交付簡單、資源統(tǒng)一管理。與傳統(tǒng)方式相比,超融合可讓應(yīng)用交付時間縮短至數(shù)小時,優(yōu)異的I/O 能力提升了應(yīng)用訪問速度,應(yīng)用可在不同設(shè)備之間在線遷移,并支持故障高可用,大幅減少業(yè)務(wù)停機(jī)時間[5]。
(8)SSO 單點(diǎn)登錄:在多個應(yīng)用系統(tǒng)中,用戶只需要登錄一次,就可以訪問其他相互信任的應(yīng)用系統(tǒng)。統(tǒng)一了身份認(rèn)證和機(jī)制,使用統(tǒng)一的賬號和密碼,安全、便捷地訪問信息化體系內(nèi)部的各個應(yīng)用系統(tǒng),避免了由于應(yīng)用系統(tǒng)過多、密碼規(guī)則復(fù)雜而造成用戶需要反復(fù)輸入用戶名和密碼以及密碼的丟失等問題,使用戶能夠更加靈活、便捷、高效地登錄各個應(yīng)用系統(tǒng),提高信息系統(tǒng)的易用性、安全性和穩(wěn)定性[6]。
汽車零部件物流業(yè)務(wù)管理模式多樣化,主要體現(xiàn)在零件種類不同、庫存管理精細(xì)度不同、拉動方式不同、出入庫方式不同、料帳方式不同等,并且跟隨車型生產(chǎn)變化,其管理模式隨時有可能進(jìn)行調(diào)整,這就要求WMS 系統(tǒng)具有較高的業(yè)務(wù)兼容性和適應(yīng)能力。本文中WMS 系統(tǒng)設(shè)計以下幾種功能模塊,以支持多樣化的業(yè)務(wù)管理模式。
(1)數(shù)據(jù)管理:分為PFEP(plan for every part)基礎(chǔ)數(shù)據(jù)和業(yè)務(wù)策略數(shù)據(jù)。WMS 配置數(shù)據(jù)接口,從MDM 系統(tǒng)接收PFEP基礎(chǔ)數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)上下游統(tǒng)一,保證數(shù)據(jù)的準(zhǔn)確性和時效性;業(yè)務(wù)策略數(shù)據(jù)定義了業(yè)務(wù)類型、作業(yè)規(guī)則、庫存增減規(guī)則和財務(wù)規(guī)則等,通過自由的策略配置,極大程度上滿足了業(yè)務(wù)多樣化需求,并能及時響應(yīng)業(yè)務(wù)模式的變化調(diào)整。
(2)庫存管理:分為料箱級管理和零件級管理兩種模式。料箱級物料具備唯一料箱標(biāo)簽,實(shí)現(xiàn)對每一箱物料的全周期監(jiān)控,出入庫記錄跟蹤到箱,做到精準(zhǔn)庫存管理;零件級管理的零件針對直供件、標(biāo)準(zhǔn)件等無需精細(xì)化管理的零件類型,簡化員工的作業(yè)流程。
(3)單據(jù)及標(biāo)簽管理:同步上下游單據(jù)和標(biāo)簽信息。單據(jù)包括拉動單、送貨單和排序單;標(biāo)簽包括零件料箱標(biāo)簽、唯一托盤標(biāo)簽和標(biāo)簽組托關(guān)系等。實(shí)現(xiàn)上下游數(shù)據(jù)協(xié)同,通過接口,實(shí)時同步單據(jù)狀態(tài)。
(4)PDA 作業(yè):基于Android 系統(tǒng)開發(fā)的APP 應(yīng)用,支持無線掃描作業(yè)、在線提交、查詢和單據(jù)簽署等日常作業(yè)功能,提高作業(yè)效率。
(5)任務(wù)管理:根據(jù)業(yè)務(wù)策略里提前設(shè)定的規(guī)則,包括上架任務(wù)、下架任務(wù)、揀貨任務(wù)、翻包任務(wù)和盤點(diǎn)任務(wù)等,自動生成任務(wù)。任務(wù)管理分為“指派”和“搶單”兩種單據(jù)分配方式,員工作業(yè)更靈活。
(6)智能設(shè)備管理:定義4 組API 接口。標(biāo)簽校驗(yàn)接口,提供給智能設(shè)備進(jìn)行調(diào)用,以驗(yàn)證標(biāo)簽的合法性;出入庫接口,將智能設(shè)備出入庫結(jié)果傳輸給WMS,生成出入庫記錄和增減庫存;盤點(diǎn)接收接口,將智能設(shè)備的盤點(diǎn)結(jié)果傳輸給WMS,并調(diào)整庫存;封存接口,將智能設(shè)備封存的物料傳輸給WMS。WMS 自動將相關(guān)庫存移庫到不良品區(qū),實(shí)現(xiàn)了WMS 系統(tǒng)與各種不同類型的IOT 設(shè)備完成對接和信息交互。
(7)系統(tǒng)管理:包含用戶管理模塊和全局配置模塊。其中用戶賬號信息對接SSO 系統(tǒng),WMS 系統(tǒng)配置用戶的角色信息,并賦予角色權(quán)限;全局配置模塊包含配置字典、APP 版本管理等。
物流的主數(shù)據(jù)包括PFEP 數(shù)據(jù)與主數(shù)據(jù),精準(zhǔn)的主數(shù)據(jù)規(guī)劃是做好系統(tǒng)功能的基礎(chǔ)。
PFEP(Plan For Every Part)數(shù)據(jù)是指對生產(chǎn)過程中每個零部件或物料制定詳細(xì)的計劃,并注明所有與生產(chǎn)過程相關(guān)的信息。PFEP 是供應(yīng)鏈管理過程中精細(xì)化管理物料的一種方式,是一個企業(yè)精益物流系統(tǒng)建立和持續(xù)改進(jìn)的基礎(chǔ)[7]。而主數(shù)據(jù)是可以在企業(yè)內(nèi)跨業(yè)務(wù)部門、跨業(yè)務(wù)系統(tǒng)被重復(fù)使用,是相對高價值、高共享且相對穩(wěn)定的數(shù)據(jù)。PFEP 數(shù)據(jù)包含了大部分主數(shù)據(jù)的內(nèi)容。主數(shù)據(jù)具有以下3 大特點(diǎn)。
(1)唯一的數(shù)據(jù)實(shí)例:主數(shù)據(jù)應(yīng)該代表企業(yè)中的某個業(yè)務(wù)對象的唯一實(shí)例,對應(yīng)企業(yè)中真實(shí)的對象。重復(fù)創(chuàng)建實(shí)例將導(dǎo)致數(shù)據(jù)的不一致,進(jìn)而影響業(yè)務(wù)流程;例如當(dāng)前的“零件工廠庫存”數(shù)據(jù)囊括了零件基礎(chǔ)信息、零件庫位信息和零件包裝信息。我們所有的包裝屬性都應(yīng)在“零件工廠庫存”數(shù)據(jù)的基礎(chǔ)上拓展。如額外創(chuàng)建包裝相關(guān)數(shù)據(jù),將可能造成數(shù)據(jù)屬性的重復(fù),在差異維護(hù)的時候?qū)?dǎo)致業(yè)務(wù)操作的不一致。
(2)單一的數(shù)據(jù)源:為確保系統(tǒng)跨系統(tǒng)、跨流程的唯一性和一致性,需要對每個屬性的創(chuàng)建、更新、讀取確定一個系統(tǒng)作為數(shù)據(jù)源,即MDM(主數(shù)據(jù)管理系統(tǒng))。
(3)統(tǒng)一的管控:結(jié)合業(yè)務(wù)現(xiàn)狀,對主數(shù)據(jù)制定政策、標(biāo)準(zhǔn)和模型,由數(shù)據(jù)維護(hù)工程師和用戶在各個流程實(shí)施對應(yīng)的政策、標(biāo)準(zhǔn)、模型。不同于數(shù)據(jù)維護(hù)人員,主數(shù)據(jù)的制定需要數(shù)據(jù)owner 結(jié)合業(yè)務(wù)發(fā)展對關(guān)鍵數(shù)據(jù)進(jìn)行識別、分類、定義及標(biāo)準(zhǔn)化。數(shù)據(jù)owner 對數(shù)據(jù)的產(chǎn)生到退出的全流程負(fù)責(zé)。
例如之前老版的系統(tǒng)中維護(hù)的“包裝類型”,其實(shí)是“包裝箱型”(如:A、B)。但是隨著業(yè)務(wù)發(fā)展,我們更需要對包裝信息進(jìn)行歸檔、分析。而“包裝箱型”顯然是不利于系統(tǒng)信息的分組歸類的。這個時候我們就需要通過“包裝類型”(標(biāo)準(zhǔn)塑料周轉(zhuǎn)箱、圍板箱和卡板箱)對包裝進(jìn)行標(biāo)識。這個時候包裝的數(shù)據(jù)owner,就需要對包裝類型進(jìn)行識別、分類、定義及標(biāo)準(zhǔn)化。并將對應(yīng)標(biāo)準(zhǔn)發(fā)布到各區(qū)域指導(dǎo)數(shù)據(jù)維護(hù)、包裝識別等業(yè)務(wù)操作。
PFEP 報表數(shù)據(jù)指在PFEP 數(shù)據(jù)中,對應(yīng)業(yè)務(wù)未形成系統(tǒng)化作業(yè)或未形成完善的業(yè)務(wù)標(biāo)準(zhǔn),且未統(tǒng)一的數(shù)據(jù)。但該數(shù)據(jù)是在生產(chǎn)過程中能起到指導(dǎo)生產(chǎn)、數(shù)據(jù)查詢等功能的數(shù)據(jù)。
面向復(fù)雜的作業(yè)場景和任務(wù),本文中系統(tǒng)采用設(shè)計業(yè)務(wù)策略來驅(qū)動倉儲業(yè)務(wù)實(shí)現(xiàn)。首先,業(yè)務(wù)流程配置化,可將多個業(yè)務(wù)進(jìn)行串聯(lián),適應(yīng)各種倉儲業(yè)務(wù)。其次,智能化作業(yè)驅(qū)動提供了上架、揀貨和發(fā)貨等多種作業(yè)規(guī)則配置,通過任務(wù)驅(qū)動倉儲作業(yè)。最后,智能的任務(wù)分配提供按區(qū)域任務(wù)分解、作業(yè)量分解等多種任務(wù)分解和分配方式。業(yè)務(wù)策略主要配置的規(guī)則設(shè)計如表1 所示。
表1 零部件倉儲管理系統(tǒng)業(yè)務(wù)策略配置規(guī)則設(shè)計
面向汽車制造業(yè)的零部件倉儲管理系統(tǒng),將越來越多承擔(dān)供應(yīng)鏈智慧協(xié)同的關(guān)鍵功能決策,實(shí)現(xiàn)對倉庫管理的精細(xì)化、柔性化、智能化和數(shù)字化,將是未來零部件倉儲管理系統(tǒng)的發(fā)展方向。本文中設(shè)計的系統(tǒng),充分發(fā)揮新一代信息技術(shù)的應(yīng)用,考慮業(yè)務(wù)變化的可適應(yīng)性,基于業(yè)務(wù)策略驅(qū)動業(yè)務(wù)實(shí)現(xiàn)的方式,貫穿倉庫出入庫管理、庫存及庫內(nèi)作業(yè)管理、不良品及退貨管理、單據(jù)及標(biāo)簽管理、盤點(diǎn)管理和料帳管理等一系列倉儲業(yè)務(wù),支持未來10年的業(yè)務(wù)發(fā)展應(yīng)用能力,為當(dāng)前及未來零部件倉儲管理系統(tǒng)提供了一種設(shè)計方案。
同時,本系統(tǒng)在設(shè)計時還充分考慮了與上下游系統(tǒng)間的數(shù)據(jù)集成,打通了企業(yè)內(nèi)外應(yīng)用數(shù)據(jù)鏈路,消除數(shù)據(jù)孤島。同時,該系統(tǒng)結(jié)合手持終端PDA 作業(yè)和IOT 智能設(shè)備對接,有效提高物流作業(yè)效率,為未來物流全鏈路無人化奠定了基礎(chǔ)。隨著系統(tǒng)應(yīng)用的不斷擴(kuò)展和業(yè)務(wù)深入,產(chǎn)生大量的業(yè)務(wù)數(shù)據(jù),依托于統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn),企業(yè)可建立對數(shù)據(jù)的二次利用和開發(fā),進(jìn)一步支持企業(yè)的經(jīng)營決策。