余 翔,宣義友,梁群立
(1.安徽中煙工業(yè)有限責(zé)任公司滁州卷煙廠生產(chǎn)科,安徽 滁州 239000;2-3.安徽中煙工業(yè)有限責(zé)任公司滁州卷煙廠企業(yè)管理科,安徽 滁州 239000;)
煙草行業(yè)成品卷煙倉庫在用有高架庫和樓房平庫兩種,由于高架庫投入大、日常維保成本高,現(xiàn)今行業(yè)成品倉庫依然多為樓房平庫,樓層分散導(dǎo)致保管員工作量較大,庫位管理不夠精細(xì)。隨著無線網(wǎng)絡(luò)的深入發(fā)展和智能移動終端的應(yīng)用普及,企業(yè)對移動信息化的應(yīng)用研究顯得十分必要,可以使用便攜式移動設(shè)備隨時隨地處理工作。應(yīng)用Android平臺編程技術(shù),設(shè)計Android手持設(shè)備成品倉庫管理系統(tǒng),通過掃描條形碼完成出、入庫操作,并實現(xiàn)與企業(yè)在用的庫管系統(tǒng)數(shù)據(jù)共享,提高工作便捷性,用技術(shù)手段實現(xiàn)防差錯管理,可有效提升工作效率,提升企業(yè)倉儲管理信息化水平。
卷煙成品倉庫管理使用煙草行業(yè)一號工程及其配套的RFID同城物流管理系統(tǒng),進(jìn)行出入庫操作管理,該系統(tǒng)沒有倉庫貨位管理部分,成品入庫后,需要人工管理貨位分配、記錄工作,導(dǎo)致保管員工作量較大,常常是一批產(chǎn)品使用一個貨位,產(chǎn)品先入先出管理難度大。
在充分了解當(dāng)前無線網(wǎng)絡(luò)、智能移動終端的應(yīng)用現(xiàn)狀基礎(chǔ)上,結(jié)合企業(yè)現(xiàn)有的倉庫管理系統(tǒng),提出系統(tǒng)集成方案:對所有成品倉庫貨位進(jìn)行編碼,并制作貨位條形碼;設(shè)計軟件程序,通過手機(jī)或PAD手持設(shè)備(Android系統(tǒng))掃描中國煙草一號工程條形碼,識別卷煙條形碼信息,根據(jù)卷煙條形碼查詢組垛信息,再掃描倉庫貨位條碼,辦理卷煙入庫,出庫時通過移動設(shè)備掃描件煙條形碼或貨位條形碼辦理出庫。管理系統(tǒng)包含目前在用的各項倉儲管理業(yè)務(wù),提供完善的業(yè)務(wù)處理功能,實時查詢成品倉庫的管理數(shù)據(jù)、自動生成相應(yīng)管理報表,實現(xiàn)倉儲業(yè)務(wù)數(shù)據(jù)的一體化管理。[1]
Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)的,主要應(yīng)用于智能手機(jī)和平板電腦等移動設(shè)備,是當(dāng)前最流行和最熱門的移動開發(fā)技術(shù)之一。
Android系統(tǒng)的手機(jī)或PAD手持式設(shè)備倉庫管理程序由AndroidStudio編程語言開發(fā)。Android Studio是Google推出,專門為Android“量身訂做”的軟件開發(fā)工具,是Google大力支持的一款基于IntelliJidea改造的IDE。具有速度更快、UI更漂亮、更加智能、更完善的插件系統(tǒng)等突出優(yōu)勢,代表了Android的未來。開發(fā)環(huán)境搭建還需要下載并安裝Java程序,并配置JDK的環(huán)境變量。系統(tǒng)的后臺數(shù)據(jù)服務(wù)程序使用Eclipse開發(fā),為手機(jī)的應(yīng)用客戶端程序提供數(shù)據(jù)服務(wù)。
成品倉庫管理業(yè)務(wù)分三個部分:入庫管理、出庫管理、庫存管理。成品倉庫管理系統(tǒng)輔助管理功能包括:庫位管理和系統(tǒng)管理兩個部分。系統(tǒng)管理包括:增加系統(tǒng)用戶,修改用戶信息,用戶權(quán)限分配,修改個人密碼等功能。庫位管理包括:庫位編碼設(shè)計,庫位條形碼增加、修改、刪除、打印等內(nèi)容。入庫管理、出庫管理、庫存管理業(yè)務(wù)流程如圖1。
圖1倉庫管理業(yè)務(wù)流程圖
1、服務(wù)器端軟件設(shè)計
通常來說,移動端發(fā)出的請求不直接與數(shù)據(jù)庫服務(wù)器進(jìn)行交互,先經(jīng)過應(yīng)用服務(wù)器的servlet進(jìn)行相關(guān)操作。
Servlet(ServerApplet)是 JavaServlet 的簡稱,稱為小服務(wù)程序或服務(wù)連接器,可用Eclipse等軟件編寫服務(wù)器端程序,主要功能在于交互式地插入、修改、刪除、查詢數(shù)據(jù),生成動態(tài)Web內(nèi)容。這個過程為:
a客戶端發(fā)送請求至服務(wù)器端;
b服務(wù)器將請求信息發(fā)送至 Servlet;
cServlet生成響應(yīng)內(nèi)容并將其傳給服務(wù)器。響應(yīng)內(nèi)容動態(tài)生成,通常取決于客戶端的請求;
d服務(wù)器將響應(yīng)返回給客戶端。
本項目在應(yīng)用服務(wù)器端,利用MyEclipse開發(fā)工具設(shè)計了TonyService服務(wù)程序,來實現(xiàn)移動客戶端與數(shù)據(jù)庫的交互,開發(fā)頁面如圖2。數(shù)據(jù)庫表對象類放在hibernate.entity目錄中,包括:用戶表對象類User.java,庫存表對象類StoryList.java,入庫過程記錄表對象類InstoryList.java,出庫過程記錄表對象類OutstoryList.java。數(shù)據(jù)庫表業(yè)務(wù)處理類(包括表的增、刪、改、查等操作),放在hibernate.dao目錄中,包括:用戶表操作類UserDAO.java,庫存表操作類StoryDAO.java,入庫過程記錄表操作類InStoryQueryDAO.java,出庫過程記錄表操作類OutStoryQueryDAO.java,數(shù)據(jù)庫操作基礎(chǔ)類 BaseDAO.java和 HibernateUtil。java。數(shù)據(jù)庫表的服務(wù)接口類放在ahpu.servlet目錄中,包括:用戶登錄驗證服務(wù)類Login.java,按時間段查詢?nèi)霂鞌?shù)據(jù)服務(wù)類InstoryqueryService.java,按牌名查詢出庫數(shù)據(jù)服務(wù)類GetOutstoryBypaiming.java,通過卷煙條碼查詢庫存數(shù)據(jù)服務(wù)GetStoryBypocode.java等。[2]
圖2項目的servlet程序(TonyService)
2、Android移動設(shè)備端軟件設(shè)計
Android移動設(shè)備端應(yīng)用軟件使用Android Studio開發(fā),開發(fā)界面如圖3,包括手機(jī)操作頁面設(shè)計和功能程序類設(shè)計,操作頁面程序存放在reslayout目錄中,包括:系統(tǒng)登錄頁面activity_main.xml,系統(tǒng)操作菜單頁面activity_mainmenu.xml,入庫操作查詢頁面activity_in_storyquery.xml,出庫操作查詢頁面activity_out_story_query.xml等。功能程序類存放在srcmainjava目錄中,主要包括:數(shù)據(jù)對象類,條形碼識別操作類,遠(yuǎn)程數(shù)據(jù)服務(wù)類、系統(tǒng)登錄操作類,入庫操作類,出庫操作類等。數(shù)據(jù)對象類包括:用戶表對象User.java、庫存表對象StoryList.java、入庫操作表對象InstoryList.java、出庫操作表對象OutstoryList.java等。條形碼識別操作類包括:移動設(shè)備攝像頭管理類CameraManager.java、閃光燈管理類FlashlightManager.java、自動聚焦類AutoFocusCallback.java、條形碼圖片處理類CaptureActivityHandler.java、條形碼數(shù)據(jù)編碼處理類DecodeHandler.java等。遠(yuǎn)程數(shù)據(jù)服務(wù)類包括:遠(yuǎn)程服務(wù)器配置和接口管理類RemoteServic.javae,遠(yuǎn)程服務(wù)請求隊列管理類VolleySingleton.java。系統(tǒng)登錄操作類主要有MainActivity.java。入庫操作類包括:按時間段查詢?nèi)霂鞌?shù)據(jù)類InStoryqueryActivity.java,查詢指定編號的入庫記錄類InstoryinfoActivity.java,查詢指定條形碼的卷煙入庫記錄InstorycodeActivity.java等。出庫操作類包括:按時間段查詢出庫數(shù)據(jù)類OutStoryQuery.java,查詢指定編號的出庫記錄類OutstoryinfoActivity.java,查詢指定條形碼的卷煙出庫記錄類OutstorycodeActivity.java等。庫存管理類包括:指定倉庫的卷煙數(shù)據(jù)查詢類StorycangkuActivity.java,指定牌名的卷煙數(shù)據(jù)查詢類StorypaimingActivity.java,指定庫位條碼的庫存記錄查詢類StorypocodeActivity.java,指定卷煙產(chǎn)品條碼的庫存數(shù)據(jù)查詢類StoryprcodeActivity.java。[3]
圖3Android應(yīng)用軟件開發(fā)界面圖
3、數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫用于保存?zhèn)}庫管理系統(tǒng)的庫存、入庫和出庫等數(shù)據(jù),使用微軟MicrosoftSQLServer2005數(shù)據(jù)庫軟件構(gòu)建,應(yīng)用程序所用的數(shù)據(jù)表有:用戶數(shù)據(jù)表Staff,庫存數(shù)據(jù)表PI_PALLET_INFO和出入庫過程數(shù)據(jù)記錄表Store_Operate_List等。
該倉庫管理系統(tǒng)運(yùn)行的頁面效果如圖4所示,在android操作系統(tǒng)手機(jī)的桌面上點(diǎn)擊倉庫管理軟件圖標(biāo),進(jìn)入用戶登錄和身份認(rèn)證頁面,輸入用戶名和密碼,點(diǎn)擊登錄按鈕,系統(tǒng)驗證登錄人員,驗證通過后,進(jìn)入主菜單頁面,點(diǎn)擊相應(yīng)的入庫管理、出庫管理、庫存管理菜單按鈕,進(jìn)入相應(yīng)操作頁面。如點(diǎn)擊入庫數(shù)據(jù)查詢菜單,進(jìn)入入庫數(shù)據(jù)查詢頁面,輸入入庫的開始和結(jié)束時間,點(diǎn)擊查詢按鈕,即可查詢該時間段的入庫數(shù)據(jù),如果想查看每條入庫記錄的詳細(xì)情況,可以點(diǎn)擊一下該記錄,系統(tǒng)進(jìn)入指定編號的入庫記錄詳細(xì)數(shù)據(jù)。[4]
圖4系統(tǒng)運(yùn)行效果圖
本文給出了基于Android移動平臺的卷煙庫管理系統(tǒng)設(shè)計與實現(xiàn)的開發(fā)思路和框架,并對部分軟件開發(fā)過程進(jìn)行敘述。該系統(tǒng)可用于android操作系統(tǒng)移動設(shè)備的倉庫管理,操作簡易,提高了工作的便捷性和工作效率,具有一定的推廣實現(xiàn)意義。
[1]徐誠等.零點(diǎn)起飛學(xué)Android開發(fā)[M].北京:清華大學(xué)出版社,2015.
[2]明日科技編著.Android從入門到精通[M].北京:清華大學(xué)出版社,2016.
[3]夏幫貴.基于Android平臺的圖書館服務(wù)系統(tǒng)設(shè)計與實現(xiàn)[J].現(xiàn)代圖書與情報技術(shù),2011(6):85-89.
[4]姚尚朗等,Android開發(fā)入門與實戰(zhàn)(第二版)[M].北京:人民郵電出版社,2014.