編者按
本文對(duì)于單一工序、單一資源,單一工序、多資源,多工序、單一資源(較少),多工序、多資源這四種常見的生產(chǎn)計(jì)劃類型進(jìn)行逐一分析,著重于計(jì)劃的優(yōu)化,而非硬性規(guī)則的確保。其中,針對(duì)多工序、多資源生產(chǎn)計(jì)劃類型具體描述了基于Optaplanner設(shè)計(jì)APS(進(jìn)階生產(chǎn)規(guī)劃及排程系統(tǒng))排產(chǎn)引擎時(shí)遇到的棘手問題,包括:計(jì)劃類型的識(shí)別,由任務(wù)組成的工序鏈與機(jī)臺(tái)鏈,任務(wù)與機(jī)臺(tái)之間的匹配,工序鏈與機(jī)鏈之間的存在膠著可能性,以及循環(huán)識(shí)別與處理的問題。
對(duì)單一工序、單一資源種類的情況,是最簡(jiǎn)單的一種排產(chǎn)場(chǎng)景。即一個(gè)產(chǎn)品的生產(chǎn)過程只需使用同一種資源,進(jìn)行一次加工即完成了產(chǎn)品的整個(gè)生產(chǎn)過程。這種情況下,既然是單一工序,那也就沒有了工序的先后資源的限制;單一種類資源,即沒有了資源的選擇優(yōu)化。
這里提到的資源,是指需要完成一個(gè)生產(chǎn)作業(yè)(或稱任務(wù),生產(chǎn)任務(wù))所需的生產(chǎn)條件,例如機(jī)臺(tái)、原料等,即廣義資源。生產(chǎn)實(shí)踐中,這類計(jì)劃通常是對(duì)產(chǎn)品眾多工序路線中的一個(gè)較重要的工序進(jìn)行制定計(jì)劃時(shí)使用。需進(jìn)行優(yōu)化的主要目的是對(duì)資源的使用分配,比如各機(jī)之間實(shí)現(xiàn)負(fù)荷平衡等需求。
實(shí)現(xiàn)這類計(jì)劃時(shí),需要通過設(shè)定機(jī)臺(tái)平衡的約束,讓引擎在為工序分配任務(wù)時(shí),盡可能實(shí)現(xiàn)同一類機(jī)的負(fù)荷平衡。比如印刷生產(chǎn)中對(duì)排在最后的手工工序制定生產(chǎn)計(jì)劃時(shí),需要根據(jù)各個(gè)產(chǎn)線的人力安排情況,按比例安排定額任務(wù)。
對(duì)單一工序、多資源種類的情況,僅對(duì)產(chǎn)品一個(gè)工序進(jìn)行排產(chǎn),僅可用于這個(gè)工序的資源是多種多樣的,并且各種資源之間可以互換。此類計(jì)劃主要為了實(shí)現(xiàn)資源的優(yōu)化分配,即按照一定原則對(duì)各個(gè)工序進(jìn)行資源安排。各種資源使用成本各不相同,在制定計(jì)劃時(shí),為了降低生產(chǎn)成本,應(yīng)在確保其它更高優(yōu)先級(jí)的約束或硬性約束的前提下,盡量使用低成本的資源進(jìn)行生產(chǎn)。
例如,在印刷行業(yè)印刷印張的工序中,有些印張可以通過CMYK四色印制,也可通過調(diào)配特殊色通過專色印制,但前者成本相比后者更低,前后兩種印刷方式就表示兩種資源。在對(duì)印刷工序定制生產(chǎn)計(jì)劃時(shí),就會(huì)優(yōu)先使用CMYK印刷,但并非絕對(duì),如果CMYK資源已經(jīng)超出負(fù)荷,不動(dòng)用專色印刷就無法實(shí)現(xiàn)按時(shí)交貨時(shí),還是會(huì)放棄成本這個(gè)約束,來遷就交期這個(gè)更高優(yōu)先級(jí)的約束。
多個(gè)工序,單一種類資源的情況,則相對(duì)較少見。即計(jì)劃中需要制定整個(gè)產(chǎn)品工序路線中的所有工序資源和時(shí)間,其中資源要求只有一種可選??梢岳斫?,這種情況對(duì)資源分配的要求較低,計(jì)劃著重于對(duì)工序的前后關(guān)系制約或工序自身其它因素的優(yōu)化。即在資源分配上,如第一種情況“單一資源、單一任務(wù)”一致,基于資源利用的一些原則進(jìn)行資源分配。而在安排工序的加工時(shí)間問題上,則需要根據(jù)產(chǎn)品的工序路線,實(shí)現(xiàn)對(duì)前后工序在時(shí)間上的次序關(guān)系,而這種次序又受到資源分配的限制。
例如:如果印刷的第二工序中(有些企業(yè)稱為印后加工),有過油、過膠、過UV三個(gè)工序,如果有一種機(jī)臺(tái)同時(shí)可以實(shí)現(xiàn)這三種工序,那就滿足“多個(gè)工序、單一資源種類”的場(chǎng)景。這時(shí)關(guān)于工序的資源分配,會(huì)有相應(yīng)的資源使用約束。但更重要的約束是:一個(gè)產(chǎn)品多個(gè)工序的處理次序上,這個(gè)次序必然是根據(jù)產(chǎn)品的工序路線設(shè)定的資源來執(zhí)行的,否則就違反了硬性約束。
所以,綜合上述的資源分配和工序資源兩種要求,我們需要面對(duì)的是互相矛盾的問題:其一,對(duì)于同一個(gè)產(chǎn)品需要確保其執(zhí)行的工序與工序路線上設(shè)定的一致;其二,對(duì)于一個(gè)資源(例如機(jī)臺(tái))上的生產(chǎn)效率而言,如何實(shí)現(xiàn)更多的同工序連接生產(chǎn)。
即使使用同一資源,通常在該資源上,不同工序的生產(chǎn)任務(wù)之間的切換會(huì)產(chǎn)生成本,可能是時(shí)間成本,也可能是具體的貨幣成本。所以,難點(diǎn)就在于如何平衡上述兩個(gè)問題,從而實(shí)現(xiàn)資源利用率最大化和工序資源不被違反。
多個(gè)工序,多資源種類的和產(chǎn)計(jì)劃,是目前最為常見,也最為復(fù)雜的生產(chǎn)計(jì)劃,是本文討論的重點(diǎn)。多工序與前一個(gè)問題一樣,是針對(duì)整個(gè)產(chǎn)品的工序路線進(jìn)行排產(chǎn),而且生產(chǎn)各個(gè)工序所用的資源屬于不同種類。
這種情況面對(duì)兩個(gè)相對(duì)零散也有交互的矛盾:其一,對(duì)于一個(gè)產(chǎn)品而言,其多個(gè)工序是依據(jù)工序路線形成生產(chǎn)資源的;其二,多種資源表示各個(gè)生產(chǎn)工序所使用的資源有可能不一樣,也有可能不同。
因工序前后次序的限制原因,當(dāng)引擎對(duì)一個(gè)工序完成資源分配后,進(jìn)一步進(jìn)行生產(chǎn)時(shí)間的分配。但因?yàn)橥划a(chǎn)品的工序執(zhí)行次序,需要按照工序路線的先后次序來執(zhí)行,也就是計(jì)劃中除了需要分配好的資源外,還要確保這個(gè)資源在指定的時(shí)間段內(nèi),沒有被其它產(chǎn)品的生產(chǎn)任務(wù)占用。那么當(dāng)同時(shí)對(duì)多個(gè)產(chǎn)品進(jìn)行排產(chǎn)時(shí),各個(gè)產(chǎn)品的工序路線形成的工序生產(chǎn)序列和資源分配方案,很容易就形成膠著狀態(tài),甚至在多個(gè)資源之間出現(xiàn)死鎖狀態(tài)。
下面,我們以多個(gè)不同種類的機(jī)臺(tái),處理工序路線上多個(gè)工序的案例,來計(jì)劃“多工序、多資源種類”的情況,并分析需要實(shí)現(xiàn)這種計(jì)劃,所需的技巧、技術(shù)難點(diǎn)和可能出現(xiàn)的情況,及其應(yīng)對(duì)方法。
1、多工序與多機(jī)臺(tái)的場(chǎng)景描述
規(guī)劃過程中用到的概念。為了便于描述規(guī)劃過程中的各種情況,現(xiàn)先定義以下概念:
(1) 任務(wù)或生產(chǎn)任務(wù):一個(gè)產(chǎn)品的一個(gè)工序的生產(chǎn)作業(yè)稱作一個(gè)任務(wù),例如印刷后加工有:過膠 -> 燙金 -> 絲印,則表示這個(gè)產(chǎn)品的后加工中有三個(gè)任務(wù),分別是過膠任務(wù), 燙金任務(wù)和絲印任務(wù)。
(2) 工序路線任務(wù)鏈:一個(gè)產(chǎn)品中的不同工序?qū)?yīng)的生產(chǎn)作業(yè),其次序是由其工序路線確定的,一個(gè)產(chǎn)品的所有生產(chǎn)作業(yè)序列,即任務(wù)序列,稱為工序路線任務(wù)鏈。
(3) 機(jī)臺(tái)任務(wù)鏈:多個(gè)任務(wù)被分配在一個(gè)機(jī)臺(tái)上時(shí),同一時(shí)間只能處理一個(gè)產(chǎn)品,即同一時(shí)間只能進(jìn)行一個(gè)任務(wù),這些同在一機(jī)臺(tái)上形成的任務(wù)序列,稱為機(jī)臺(tái)任務(wù)鏈接。
(4) 前置任務(wù),后置任務(wù):同一產(chǎn)品上多個(gè)任務(wù),根據(jù)工序路線的規(guī)定形成與工序次序一次的生產(chǎn)任務(wù)次序(即工序路線任務(wù)鏈)。在鏈中兩個(gè)相鄰的任務(wù),前者稱作后者的前置任務(wù);后者稱作前者的后置任務(wù)。
(5) 前一任務(wù),后一任務(wù):分布于同一機(jī)臺(tái)上的多個(gè)工序任務(wù)(即機(jī)臺(tái)任務(wù)鏈),在機(jī)臺(tái)任務(wù)鏈中相個(gè)相鄰的任務(wù);前者稱為后者的前一任務(wù),后者稱作前者的前一任務(wù)。
2、多工序、多機(jī)臺(tái)排程里的限制
下面我們來針對(duì)實(shí)用性最強(qiáng),制造業(yè)面對(duì)最多的場(chǎng)景 :多工序、多臺(tái)機(jī)臺(tái)場(chǎng)景展開討論。處理這類生產(chǎn)計(jì)劃,以下兩個(gè)因素最為麻煩。
(1) 多任務(wù)與多機(jī)臺(tái)的匹配
在待排的計(jì)劃要素中,任務(wù)與機(jī)臺(tái)的種類都存在多樣性,且可能存一種任務(wù)可分配到多種機(jī)臺(tái),一種機(jī)臺(tái)可以做多種任務(wù)的情況,因此,任務(wù)與機(jī)臺(tái)的匹配問題會(huì)相對(duì)其它三種生產(chǎn)計(jì)劃復(fù)雜一些,但往往這也是體現(xiàn)出Optaplanner價(jià)值的一個(gè)要點(diǎn)。
(2) 工序路線任務(wù)鏈與機(jī)臺(tái)任務(wù)鏈之間存在互相制約關(guān)系
一個(gè)產(chǎn)品的工序中先確定的任務(wù)序列,與分配于同一機(jī)臺(tái)上的任務(wù)序列,在加工次序上互相制約。加工次序體現(xiàn)在加工的時(shí)間先后,即一個(gè)產(chǎn)品的任務(wù)序列,必然按其工序路線,存在一定的先后次序。而單個(gè)產(chǎn)品被分配到各個(gè)機(jī)臺(tái)上進(jìn)行生產(chǎn)作業(yè)時(shí),因生產(chǎn)路線上存在時(shí)間先后次序,會(huì)令到一個(gè)機(jī)臺(tái)上多個(gè)任務(wù)需要按次序生產(chǎn)的時(shí)候,每個(gè)任務(wù)的作業(yè)時(shí)間段可能并不緊密連接。
當(dāng)準(zhǔn)備在機(jī)臺(tái)上啟動(dòng)一個(gè)任務(wù)時(shí),這個(gè)任務(wù)的前置工序可能尚未完成,從而令到該任務(wù)所在的機(jī)臺(tái)已就緒(其前一任務(wù)已完成,機(jī)臺(tái)已為該任務(wù)準(zhǔn)備就緒),但因?yàn)樗那爸霉ば蜻€沒完成,導(dǎo)致它無法開始,一旦開始就違反了工序路線約束,令該機(jī)臺(tái)上排在后面的其它后任務(wù)都要推遲,而這些任務(wù)被推遲,又可能導(dǎo)致它們自身的后置任務(wù)需要推遲,從而會(huì)出現(xiàn)機(jī)臺(tái)任務(wù)鏈和工序路線任務(wù)鏈互相影響。這種情況稱為“連鎖反應(yīng)”,解決好這種連鎖反應(yīng)是解決排程的關(guān)鍵。
上述描述的連鎖反應(yīng)的情況出現(xiàn),有可能出現(xiàn)環(huán)狀影響的情況。因?yàn)橐粋€(gè)正常的生產(chǎn)計(jì)劃存在時(shí)間與空間兩個(gè)主要維度,其中空間維度本文的場(chǎng)景就是機(jī)臺(tái),表示一個(gè)任務(wù)被分配到了指定機(jī)臺(tái)。時(shí)間維度則體現(xiàn)為任務(wù)的開始和結(jié)束時(shí)間(事實(shí)上結(jié)束時(shí)間可以通過開始時(shí)間推導(dǎo)出來),即確定一個(gè)任務(wù)的計(jì)劃開始時(shí)刻。那么就需要有一個(gè)邏輯,對(duì)各個(gè)已分配空間(即機(jī)臺(tái))的任務(wù)進(jìn)行時(shí)間推導(dǎo)。
任務(wù)的時(shí)間推導(dǎo)我們需要通過Optaplanner的afterEntityChanged事件來進(jìn)行(這個(gè)事件僅出現(xiàn)于Chained Through Time模式,以后將會(huì)有專門的文章講述Optaplanner的時(shí)間分配模式,其中Chained Through Time模式是重點(diǎn)),而推導(dǎo)的起源(就是從哪個(gè)任務(wù)開始推)通常以當(dāng)前Move(Optaplanner的最小作業(yè)單位)所處理的任務(wù)開始,這個(gè)任務(wù)稱為震動(dòng)源。
經(jīng)過它的工序路線任務(wù)鏈傳遞到機(jī)臺(tái)任務(wù)鏈,再由機(jī)臺(tái)任務(wù)鏈的影響回工序路線任務(wù)鏈,當(dāng)這種環(huán)狀的影響線路,經(jīng)過一系列連鎖反應(yīng),正好返回來對(duì)震動(dòng)源進(jìn)行推導(dǎo)時(shí)候,就相當(dāng)于又開始了與上一輪一樣的推導(dǎo)路線,便會(huì)無限推導(dǎo)下去,死循環(huán)就產(chǎn)生了。
我們需要準(zhǔn)確識(shí)別這種連鎖反應(yīng)會(huì)否產(chǎn)生死循環(huán),并當(dāng)確實(shí)產(chǎn)生死循環(huán)時(shí),就要將當(dāng)前的move標(biāo)識(shí)的不合法,在開啟時(shí)間推導(dǎo)之前,通過Optaplanner的Move Selection Filter將當(dāng)前的move取消,從而避免產(chǎn)生程序溢出,令系統(tǒng)崩潰。下面會(huì)舉實(shí)際的死循環(huán)例子說明這種情況。
下面我們先明確多任務(wù)多機(jī)臺(tái)生產(chǎn)計(jì)劃的基礎(chǔ)約束,再討論死循環(huán)的具體產(chǎn)生經(jīng)過。
3、計(jì)劃約束
每個(gè)工序只能分配到指定的機(jī)臺(tái)。
(1) 除產(chǎn)品的首個(gè)工序外,所有任務(wù)都有一個(gè)前置任務(wù),它的開始條件是前置任務(wù)已結(jié)束,即同一產(chǎn)品的工序根據(jù)工序路線存在FS關(guān)系。
(2) 同一機(jī)臺(tái)同一時(shí)間只能處理同一任務(wù)。即分配到機(jī)臺(tái)上的工序生產(chǎn)任務(wù),而生產(chǎn)時(shí)間不能重疊。
4、排程過程中產(chǎn)生的死循環(huán)
例如下圖:紅框的任務(wù)Task1, Task2, Task3表示了一個(gè)產(chǎn)品的工序路線上的3個(gè)工序?qū)?yīng)的任務(wù),表示這三個(gè)任務(wù)形成了工序路線任務(wù)鏈,它們分別分布于machine1, machine2, machine3三個(gè)機(jī)臺(tái)。
根據(jù)工序路線任務(wù)鏈的次序約束,其生產(chǎn)次序是Task1 -> Task2 -> Task3。藍(lán)色背景的兩個(gè)任務(wù)則是另外一個(gè)產(chǎn)品的工序路線任務(wù)鏈,根據(jù)該產(chǎn)品的工序路線,它的生產(chǎn)門外漢是TaskA -> TaskB, 可以看到這兩個(gè)工序的次序跟紅框工序中的Task2, Task3的次序是倒過來的。而從機(jī)臺(tái)machine2的機(jī)臺(tái)任務(wù)鏈上,可以看到,存在一個(gè)這樣的生產(chǎn)次序關(guān)系:Task B -> Task 2。
那么在Optaplanner通過一個(gè)Move來產(chǎn)生一個(gè)可能的方案,并對(duì)這個(gè)方案中各個(gè)任務(wù)的開始時(shí)間進(jìn)行推導(dǎo)時(shí),就有可能組合出如圖中的狀態(tài),從而出現(xiàn)死循環(huán),因?yàn)橐粋€(gè)產(chǎn)品的工序需要按工序路線任務(wù)鏈的次序執(zhí)行,而一個(gè)機(jī)臺(tái)上生產(chǎn)機(jī)臺(tái)任務(wù)鏈中的任務(wù)也是存在先后關(guān)系的,也即具有時(shí)序性,一個(gè)機(jī)臺(tái)在同一時(shí)間只能生產(chǎn)一個(gè)任務(wù),也就有了一個(gè)機(jī)臺(tái)自身的生產(chǎn)任務(wù)也是一個(gè)次序鏈的。
從圖中可以看出,存在了這么一個(gè)環(huán)狀的生產(chǎn)任務(wù)次序:Task2 -> Task3 -> TaskA -> TaskB -> Task2,即當(dāng)Task1, Task2, Task3, TaskA, TaskB中任意一個(gè)任務(wù)的開始時(shí)間被推導(dǎo)時(shí),它都將成為上述死循環(huán)描述中的震動(dòng)源,從而產(chǎn)生死循環(huán)。
5、實(shí)際多工序多機(jī)臺(tái)生產(chǎn)計(jì)劃中的約束
在實(shí)際生產(chǎn)制造場(chǎng)景中,除了上述討論的三個(gè)主要約束外,還會(huì)存在很多企業(yè)自身業(yè)務(wù)場(chǎng)景相關(guān)的限制因素,會(huì)更大程度上限制生產(chǎn)活動(dòng)的執(zhí)行。而此限制需要正確反映到生產(chǎn)計(jì)劃中,否則最終產(chǎn)生的計(jì)劃就無法執(zhí)行。本文只列出對(duì)生成計(jì)劃的正確性有影響、各計(jì)劃均會(huì)存在的共性因素,那些與各個(gè)行業(yè)、企業(yè)的業(yè)務(wù)相關(guān)的個(gè)性化因素,則不在本文考慮范圍內(nèi)。
例如:印刷行業(yè)中的印刷后加工工序,做完灑金粉工序,是需要等待一定時(shí)間,令金粉固化后,才能進(jìn)入下一工序的,那么也就是說這個(gè)工序與下一個(gè)工序之間存在一個(gè)最短時(shí)間間隔的限制,否則是會(huì)產(chǎn)生質(zhì)量事故的,因此是一個(gè)硬約束。
6、任務(wù)死循環(huán)的檢測(cè)
因?yàn)樯a(chǎn)計(jì)劃的復(fù)雜性,造成工序任務(wù)鏈與機(jī)臺(tái)任務(wù)鏈之間存在異常復(fù)雜的制約,需要對(duì)Optaplanner產(chǎn)生的可能方案進(jìn)行合法性判斷,識(shí)別任務(wù)的開始時(shí)間推導(dǎo)過程中,是否存在死循環(huán)的可能,則需要非常嚴(yán)謹(jǐn)?shù)倪壿嫹治雠c正確的模型與算法設(shè)計(jì)?,F(xiàn)舉例說明此類項(xiàng)目中在這方面遇到的問題。
當(dāng)機(jī)臺(tái)任務(wù)鏈、工序路線任務(wù)鏈設(shè)計(jì)出來,并明確了模型中各實(shí)體的職責(zé)和關(guān)系后,如果發(fā)現(xiàn)了時(shí)間推導(dǎo)存在死循環(huán)的可能,就根據(jù)推導(dǎo)過程中可以出現(xiàn)的情況進(jìn)行死循環(huán)檢測(cè),檢測(cè)過程相當(dāng)簡(jiǎn)單。
當(dāng)一個(gè)可能方案中任務(wù)的時(shí)空關(guān)系確定之后,所有任務(wù)便構(gòu)成了一個(gè)有向圖(directed graph),那么我們檢查這個(gè)有向圖是否存在環(huán)即可。可以嘗試使用隊(duì)列結(jié)構(gòu)對(duì)這個(gè)圖進(jìn)行廣度優(yōu)先遍歷,并識(shí)別環(huán)是否存在;也可以嘗試通過遞歸方式進(jìn)行深度優(yōu)先遍歷(遞歸使用的數(shù)據(jù)結(jié)構(gòu)就是棧,即從WinAPI32編程中學(xué)過的函數(shù)調(diào)用機(jī)制,調(diào)用路徑實(shí)質(zhì)就是一個(gè)棧)。
如果無論怎么嘗試,檢測(cè)結(jié)果就是無法完美、全面,可能原因是項(xiàng)目中需要考慮的因素更多,出現(xiàn)意想不到的可能性更大。此時(shí)解決辦法是:對(duì)Optaplanner在規(guī)劃過程中產(chǎn)生的每個(gè)可能方案,都進(jìn)行模型上的抽象與簡(jiǎn)化,去除一些不影響死循環(huán)判斷的因素,把它歸約成一個(gè)有向圖,并通過一些成熟的有向圖環(huán)檢測(cè)的算法對(duì)其進(jìn)行判斷。
有向圖的思路是:把之前根據(jù)復(fù)雜的業(yè)務(wù)規(guī)則,實(shí)現(xiàn)不同的邏輯進(jìn)行分支檢測(cè)的方法倒過來,將含有一些業(yè)務(wù)因素的有向圖歸約成數(shù)學(xué)算法能夠處理的規(guī)范的有向圖,再對(duì)其進(jìn)行檢測(cè)。目前這個(gè)功能已經(jīng)相當(dāng)穩(wěn)定,一般不會(huì)出現(xiàn)意想不到的意外情況。關(guān)于有向圖的環(huán)檢測(cè)算法,網(wǎng)上有很多,這里不在本文深究。
7、通過Selection Filter對(duì)不合法方案進(jìn)行過濾
若只研究本文中提出的多任務(wù)多機(jī)臺(tái)生產(chǎn)任務(wù)的三個(gè)基本約束,上文提到的不合法方案就只剩下任務(wù)死循環(huán)方案了。現(xiàn)實(shí)項(xiàng)目開發(fā)中,一個(gè)方案不合法的定義會(huì)更多、更豐富,且更復(fù)雜。一旦通過各種手段檢測(cè)出一個(gè)方案是不合法的,可以通過Selection Filter,在Optaplanner對(duì)的VariableListener對(duì)象的afterEntityChanged事件處理方法之前,把move放棄掉。關(guān)于Selection FIlter的用法,可以從Optaplanner的開發(fā)手冊(cè)中查看,后面將會(huì)專門撰寫Selection Filter相關(guān)的文章對(duì)其進(jìn)行說明。
本文描述了基于Optaplanner設(shè)計(jì)APS排產(chǎn)引擎時(shí),遇到比較棘手的問題,包括:計(jì)劃類型的識(shí)別,由任務(wù)組成的工序鏈與機(jī)臺(tái)鏈,任務(wù)與機(jī)臺(tái)之間的匹配,工序鏈與機(jī)鏈之間的存在膠著可能性,及循環(huán)識(shí)別與處理。
本人也是初始研究APS排程引擎,還在不斷探索中,有不正確的地方,還請(qǐng)多多指正。
義烏漲完廣州漲 通達(dá)兔等快遞全年或增收數(shù)十億!
1598 閱讀又出傷人事件!買A退B、簽收訛詐、押金不退……快遞小哥如何避坑?
1344 閱讀傳網(wǎng)絡(luò)貨運(yùn)“獎(jiǎng)補(bǔ)”全面暫停,誰破防了?
1208 閱讀興滿物流華北首個(gè)樞紐落戶普洛斯?jié)蠄@區(qū),開啟零擔(dān)物流新格局
1189 閱讀2025年7月中國(guó)快遞發(fā)展指數(shù)報(bào)告
863 閱讀國(guó)家鐵路集團(tuán)950億成立新藏鐵路公司
834 閱讀中國(guó)郵政開通“濟(jì)南=東京”國(guó)際貨郵航線
759 閱讀阿里技術(shù)元老“多隆”隱退,曾入選阿里合伙人
793 閱讀拼多多與順豐香港恢復(fù)合作
734 閱讀京東物流“狼族”系列亮相機(jī)器人大會(huì)
702 閱讀