梅建東+李紅春+陳霞
摘 要:隨著快遞行業(yè)的迅猛發(fā)展,傳統(tǒng)快遞投遞率低下,出現(xiàn)了大量積壓訂單?;贏ndroid平臺,設(shè)計了快遞搶單系統(tǒng),手機快遞搶單系統(tǒng)有助于訂單信息實時更新和訂單信息動態(tài)的及時掌握,實現(xiàn)有選擇性地搶單、取貨并投遞,加快了物流運轉(zhuǎn)速度。
關(guān)鍵詞關(guān)鍵詞:Android;Java;Eclipse;快遞搶單系統(tǒng);數(shù)據(jù)庫
DOIDOI:10.11907/rjdk.161314
中圖分類號:TP319
文獻標識碼:A 文
章編號:1672-7800(2016)008-0107-03
0 引言
自1979年出現(xiàn)第一家快遞企業(yè)起,中國快遞業(yè)已成為市場中關(guān)注度最高、發(fā)展速度最快的行業(yè)之一。隨著互聯(lián)網(wǎng)時代的到來,網(wǎng)購成為人們生活中不可缺少的一部分,我國快遞行業(yè)也呈現(xiàn)出了非常迅速的發(fā)展勢頭,2014年,中國憑借140億件快遞躍居全球快遞市場之首。
為了應(yīng)對如此火爆的快遞行業(yè),快遞業(yè)務(wù)的高速運轉(zhuǎn)成了目前研究的主題。目前,快遞投遞都采取定時定點取單取貨方式,對于訂單的實時性和動態(tài)性信息掌握不足,效率低下。如此效率低下的投遞方式不能滿足訂單大量涌現(xiàn)的需求,出現(xiàn)了貨物積壓,所謂“單等人”的現(xiàn)象。
Android應(yīng)用開發(fā)技術(shù)[1]、嵌入式系統(tǒng)開發(fā)技術(shù)[2]作為移動終端的核心技術(shù),是目前最熱門的開發(fā)技術(shù)。Android智能手機是人們身邊最普遍、最方便快捷的工具,通過對手機快遞系統(tǒng)的研究[3-4],能夠加快快遞領(lǐng)域市場化步伐,讓投遞員了解訂單的實時動態(tài)變化,實現(xiàn)快速搶單,及時處理積壓訂單,提高效率,同時能夠?qū)崟r了解自己的工作業(yè)績。
1 系統(tǒng)分析
基于手機的快遞系統(tǒng)項目,來源于揚州快點網(wǎng)電子商務(wù)有限公司的實際需求,實現(xiàn)買家從網(wǎng)絡(luò)平臺購買商品下單后,快遞人員快速高效地從商家取貨并安全將商品送達客戶手中。該系統(tǒng)的研發(fā)將改變傳統(tǒng)的快遞訂單獲取方式,可將訂單信息實時推送到快遞人員手機上,便于快遞搶單,提升物流運轉(zhuǎn)速度和效率。這一運營模式的改變,是“互聯(lián)網(wǎng)+”產(chǎn)業(yè)的典型應(yīng)用[5],具有一定的現(xiàn)實意義和社會意義。其研究成果既可直接服務(wù)于揚州快點網(wǎng)電子商務(wù)公司,也可復制推廣到整個物流行業(yè),項目極具創(chuàng)新性且現(xiàn)實可行。
手機快遞搶單系統(tǒng)設(shè)計具有以下特點:①軟件安裝在手機上,使用簡單、便捷;②改變了傳統(tǒng)的訂單獲取方式,物流派單系統(tǒng)將訂單直接推送到快遞人員手機上,快遞工作人員通過手機即可查看自己的訂單業(yè)務(wù),直接去商家取貨并完成派送工作;③通過手機可以實現(xiàn)訂單信息的在線更新,實時了解物流動態(tài),查看系統(tǒng)中等待派送的訂單,快遞工作人員可以通過搶單的方式獲取訂單,取貨并完成派送,加快了物流行業(yè)運轉(zhuǎn)速度;④快遞人員可以實時查詢自己完成的業(yè)務(wù)量,了解自己的工作業(yè)績;⑤公司指派業(yè)務(wù)和快遞搶單相結(jié)合,是基本工作量和績效工作量的結(jié)合,提高了員工的工作積極性,同時也加快了快遞投遞領(lǐng)域市場化的步伐。
2 系統(tǒng)設(shè)計
系統(tǒng)采用客戶端/服務(wù)器模式,具體包括Android快遞搶單客戶端、Web服務(wù)器、后臺數(shù)據(jù)庫、無線網(wǎng)絡(luò)等部分,其物理結(jié)構(gòu)如圖1所示??头薃ndroid智能手機通過無線網(wǎng)絡(luò)訪問后臺服務(wù)器,若需要數(shù)據(jù)訪問,則訪問后臺數(shù)據(jù)庫。
Android客戶端設(shè)計采用基于Java語言的Eclipse集成開發(fā)環(huán)境,網(wǎng)絡(luò)通信使用Apache HTTP協(xié)議客戶端,Web服務(wù)器采用Servlet響應(yīng)客戶請求。系統(tǒng)客戶端采用SQLite數(shù)據(jù)庫,存儲自己的業(yè)務(wù)訂單,服務(wù)器端采用MySQL數(shù)據(jù)庫,通過軟件提供客戶端數(shù)據(jù)和服務(wù)器端數(shù)據(jù)同步功能,提高程序運行效率。具體業(yè)務(wù)流程如圖2所示。
3 功能實現(xiàn)
3.1 公共模塊設(shè)計
在軟件開發(fā)過程中,經(jīng)常需要設(shè)計一些公共模塊,如數(shù)據(jù)庫連接、數(shù)據(jù)存儲、網(wǎng)絡(luò)傳輸、格式處理等,以提高程序開發(fā)速度,降低代碼冗余度。因此,開發(fā)系統(tǒng)前需要設(shè)計此類的公共模塊。
(1)數(shù)據(jù)庫幫助類。本系統(tǒng)客戶端設(shè)有數(shù)據(jù)庫Order.db,主要是保存快遞員的訂單業(yè)務(wù)信息,其數(shù)據(jù)可以從服務(wù)器中更新獲取??爝f員可以方便查看屬于自己的業(yè)務(wù)信息,以便更好地完成任務(wù)。讀寫本地數(shù)據(jù)庫Order.db必須借助系統(tǒng)的SQLiteOpenHelper,因此可以繼承SQLiteOpenHelper基類,添加系統(tǒng)所需的數(shù)據(jù)庫管理功能,形成方便的數(shù)據(jù)庫幫助類DBHelper。
(2)訂單引擎類。管理自己的業(yè)務(wù)訂單信息需要連接Order.db,讀寫訂單表中的數(shù)據(jù),并借助哈希表進行數(shù)據(jù)處理。設(shè)計一個OrderProvider公共類,實現(xiàn)數(shù)據(jù)的增、改、刪、查,可以避免不同程序模塊中的相似操作代碼,減少程序冗余。
(3)網(wǎng)絡(luò)傳輸類。實現(xiàn)用戶登錄、管理訂單等操作,都需要連接網(wǎng)絡(luò)服務(wù)器和數(shù)據(jù)庫。設(shè)計一個網(wǎng)絡(luò)連接與傳輸?shù)墓差怘ttpUtil.java完成此項任務(wù)。可以選用Post方式向服務(wù)器發(fā)出請求,根據(jù)響應(yīng)結(jié)果Result來判斷網(wǎng)絡(luò)連接情況。
public static String queryStringForPost(String url){
HttpPost request = HttpUtil.getHttpPost(url);
String result = null;
try {
HttpResponse response = HttpUtil.getHttpResponse(request);
if(response.getStatusLine().getStatusCode()==200){
result = EntityUtils.toString(response.getEntity());
return result;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
result = "網(wǎng)絡(luò)異常!";
return result;
} catch (IOException e) {
e.printStackTrace();
result = "網(wǎng)絡(luò)異常!";
return result;
}
return null;
}
3.2 登錄模塊設(shè)計
為了增強系統(tǒng)的安全性,使用該系統(tǒng)必須進行身份認證,因此登錄模塊必不可少。登錄過程是通過無線網(wǎng)絡(luò),在后臺數(shù)據(jù)庫中進行用戶工號和密碼認證,在后面訂單管理中都要用到登錄用戶信息,這樣可以做到責任分明、工作嚴謹。
登錄基本流程是:輸入用戶工號和密碼,在本地進行合法性認證,符合規(guī)則后提交給服務(wù)器,在后臺數(shù)據(jù)庫中進行查詢,如果有該用戶則進入系統(tǒng),否則給出錯誤提示。
登錄成功后,將用戶信息保存至配置文件中,以在后面訂單管理中使用。
SharedPreferences pre = getSharedPreferences("user_msg", MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = pre.edit();
editor.putString("id", id);
editor.putString("name", name);
editor.commit();
3.3 主界面設(shè)計
用戶登錄成功后即可進入系統(tǒng)的主界面,如圖3所示。主界面通過一個GridView展示,在GridView中設(shè)置子組件ImageView,每個ImageView代表一個功能,同時在ImageView下方顯示文字,便于直觀理解,符合目前手機流行界面的設(shè)計要求。對每個ImageView建立一個事件的監(jiān)聽器,當單擊ImageView時會跳轉(zhuǎn)到相應(yīng)的功能界面。比如,點擊系統(tǒng)主界面上的“待派訂單”圖標,可以進入待派訂單模塊,如圖4所示。
3.4 訂單模塊設(shè)計
訂單管理模塊主要包括待派訂單、指派訂單、搶單訂單、送達訂單等。
(1)待派訂單模塊。在系統(tǒng)的主界面點擊“待派訂單”圖標,可以進入該模塊。該模塊主要包括以下功能:①顯示待派訂單:通過自定義的ListView組件在線顯示物流訂單派送系統(tǒng)中等待派送的訂單信息,上面一行顯示下單時間和訂單狀態(tài),下面一行顯示商家名稱和派送地址;②更新功能:重新刷新訂單列表,顯示正在等待派送的訂單;③搶單功能:訂單的一種獲取方式,在等待派送的訂單列表中可以選擇性搶單。若搶單成功,搶單的訂單信息將顯示到后面的搶單訂單列表中。
客戶端通過選擇的訂單信息以Post方式向服務(wù)器發(fā)出請求,通過返回結(jié)果result來判斷是否搶單成功。
String queryString = "id="+selection.get(i)+"&op_id="+opID;
String url = HttpUtil.BASE_URL+"servlet/ModifyDpaiServlet?"+queryString;
String result= HttpUtil.queryStringForPost(url);
Toast.makeText(DpaiActivity.this, result, Toast.LENGTH_LONG).show();
服務(wù)器接受請求,并獲取客戶端的請求參數(shù)。若可以搶單,則向客戶端發(fā)出“搶單成功”字樣信息。
String id = request.getParameter("id");
String op_id = request.getParameter("op_id");
dao.ModifyDpai(id, op_id);
out.println("搶單成功!")
(2)指派訂單模塊。指派訂單是訂單的另一種獲取方式,除了搶單方式獲取外,還有公司每天指派的訂單任務(wù)。通過指派訂單模塊可以在線查看公司指定本人當天派送的訂單信息,同時將該訂單信息保存到手機的本地數(shù)據(jù)庫中,以便于查看。
(3)搶單訂單模塊。搶單功能在待派訂單模塊中實現(xiàn),該模塊屬管理模塊,管理在待派訂單中通過搶單方式獲取的訂單信息,并根據(jù)訂單信息完成商家取單及投遞。
通過搶單獲取的訂單信息除了提交服務(wù)器外,也保存一份至本地SQLite數(shù)據(jù)庫中,可以在本地數(shù)據(jù)庫中查詢并以列表方式在該模塊中顯示出來。
String state="搶單";
db=this.openOrCreateDatabase("Order.db", MODE_PRIVATE, null);
cursor=db.query("OrderTbl",null,"op_id like ? and order_state like ?",new String[]{opID,state},null,null,"order_time desc");
cursor.moveToFirst();
MyAdapter ad=new MyAdapter(this,R.layout.list_style, cursor,
new String[]{"order_time","order_state","s_name","b_add"},
new int[]{R.id.textView1,R.id.textView2,R.id.textView3,R.id.textView5}); list.setAdapter(ad)
(4)送達訂單模塊。管理本人已經(jīng)完成的訂單信息,可以分時間段統(tǒng)計或查看自己的工作業(yè)績。完成的訂單信息需要提交至網(wǎng)絡(luò)數(shù)據(jù)庫,同時更新本地數(shù)據(jù)庫。
(5)其它模塊。包括系統(tǒng)設(shè)置、密碼管理、注銷系統(tǒng)、退出系統(tǒng)。主要實現(xiàn)本地數(shù)據(jù)庫初始化、員工密碼修改、系統(tǒng)重新登錄以及退出整個系統(tǒng)。
4 結(jié)語
基于Android平臺的快遞搶單系統(tǒng)設(shè)計,改變了傳統(tǒng)的快遞訂單獲取方式,可將訂單信息實時推送到快遞人員手機上??爝f員通過手機能夠及時掌握訂單信息的動態(tài)變化,除了完成公司指派的訂單任務(wù)外,還可以有選擇性地進行搶單,及時取貨完成投遞任務(wù),加快物流的運轉(zhuǎn)速度。這一運營模式的改變,對整個物流行業(yè)具有一定的現(xiàn)實意義和社會意義。
參考文獻:
[1]陳長順.Android應(yīng)用開發(fā)[M].北京:高等教育出版社, 2014.
[2]劉連浩.物聯(lián)網(wǎng)與嵌入式系統(tǒng)開發(fā)[M].北京:電子工業(yè)出版社,2012.
[3]田智.安卓平臺快遞派送輔助軟件開發(fā)[J].電腦編程技巧與維護, 2015(12):55-57.
[4]陳鳳翔,黃賢珊.智能手機快遞發(fā)件系統(tǒng)研究[J].武漢理工大學學報, 2015(8):396-398.
[5]鄔航濤,楊斌,樓駿鵬.基于物聯(lián)網(wǎng)的智能快遞終端[J].輕工機械, 2015(6):109-112.
(責任編輯:孫 娟)