謝龍+聶廣星+王鷺


摘 要:當(dāng)前的伙食管理系統(tǒng)主要基于傳統(tǒng)PC平臺(tái),而PC平臺(tái)缺乏便攜性,易受使用環(huán)境的制約,致使數(shù)據(jù)填報(bào)不真實(shí)、上報(bào)不及時(shí)。為解決這一問題,基于Android系統(tǒng)設(shè)計(jì)了伙食管理系統(tǒng),對(duì)業(yè)務(wù)流程進(jìn)行了優(yōu)化,并綜合使用多種信息采集手段,以確保伙食管理的精確、高效、科學(xué)。
關(guān)鍵詞關(guān)鍵詞:Android;伙食管理;伙食管理系統(tǒng)
DOIDOI:10.11907/rjdk.161454
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2016)008-0091-03
0 引言
Android系統(tǒng)是Google公司基于Linux平臺(tái)開發(fā)的開源手機(jī)操作系統(tǒng),已廣泛應(yīng)用于手機(jī)、平板、TV、智能手表等設(shè)備[1]。研究調(diào)查顯示,很多企業(yè)已經(jīng)在方案設(shè)計(jì)、生產(chǎn)制造和協(xié)同管理等領(lǐng)域使用移動(dòng)APP來(lái)進(jìn)行辦公和共享資料,使用最多的平臺(tái)是Android系統(tǒng)。基于Android開發(fā)伙食管理系統(tǒng),并將其應(yīng)用于集體就餐的食堂伙食管理中,可降低管理成本,增強(qiáng)管理效能。
1 Android系統(tǒng)簡(jiǎn)介
Android系統(tǒng)的底層建立在Linux系統(tǒng)之上,源代碼開放,主要用于移動(dòng)設(shè)備。該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件四層組成,Andy Rubin等開發(fā)人員采用了軟件堆層 (Software Stack)的思想策略來(lái)對(duì)Android系統(tǒng)進(jìn)行設(shè)計(jì)[2]。這種軟件疊層結(jié)構(gòu)使得層與層之間相互分離,明確了隔層的分工,保證了層與層之間的低耦合,當(dāng)下層發(fā)生改變時(shí),上層應(yīng)用程序無(wú)需作任何改變,提高了系統(tǒng)的可維護(hù)性和穩(wěn)定性,同時(shí)增強(qiáng)了系統(tǒng)可擴(kuò)展能力,有利于對(duì)源代碼的維護(hù)和功能升級(jí)。Android系統(tǒng)框架如圖1所示。
2 系統(tǒng)總體框架設(shè)計(jì)
伙食管理系統(tǒng)總體架構(gòu)主要包括服務(wù)端、PC端、移動(dòng)終端(Android平板)和通信鏈路。系統(tǒng)運(yùn)行時(shí),伙食管理人員可操作Android移動(dòng)終端,采集基礎(chǔ)數(shù)據(jù),并處理日常業(yè)務(wù),將數(shù)據(jù)存儲(chǔ)在移動(dòng)終端的SQLite數(shù)據(jù)庫(kù)上。通過(guò)WiFi無(wú)線網(wǎng)連接的方式訪問服務(wù)器,將Android數(shù)據(jù)庫(kù)中的數(shù)據(jù)上傳到數(shù)據(jù)庫(kù)服務(wù)器。當(dāng)無(wú)線網(wǎng)不能正常連接時(shí),可以通過(guò)藍(lán)牙、USB等連接方式將移動(dòng)終端與PC終端連接起來(lái),將移動(dòng)終端的數(shù)據(jù)拷貝到PC終端,再通過(guò)PC終端將數(shù)據(jù)上傳到數(shù)據(jù)庫(kù)服務(wù)器。基于Android移動(dòng)終端的伙食管理系統(tǒng)總體框架如圖2所示。
3 系統(tǒng)功能模塊設(shè)計(jì)
伙食管理系統(tǒng)包含計(jì)劃管理、物資管理、賬務(wù)處理以及系統(tǒng)維護(hù)等模塊。實(shí)現(xiàn)的主要業(yè)務(wù)功能如圖3所示。
3.1 計(jì)劃管理模塊
基于Android的伙食管理系統(tǒng)的保障起點(diǎn)是根據(jù)保障對(duì)象的飲食習(xí)慣、工作強(qiáng)度,結(jié)合營(yíng)養(yǎng)信息、經(jīng)費(fèi)數(shù)額、物價(jià)信息和原料庫(kù)存等基礎(chǔ)數(shù)據(jù)制訂食譜。而后,系統(tǒng)自動(dòng)生成籌措計(jì)劃、加工計(jì)劃和供應(yīng)計(jì)劃,經(jīng)過(guò)簡(jiǎn)單調(diào)整后,上報(bào)服務(wù)器,經(jīng)主管部門審批,執(zhí)行相關(guān)計(jì)劃。除此之外,提供計(jì)劃查詢、計(jì)劃匯總、計(jì)劃管理等功能。其中,計(jì)劃查詢功能可根據(jù)種類、單位、日期等查詢相應(yīng)的計(jì)劃,計(jì)劃匯總功能實(shí)現(xiàn)由系統(tǒng)自動(dòng)完成指定時(shí)間內(nèi)的匯總內(nèi)容,計(jì)劃管理中提供預(yù)覽、修改、刪除和打印功能。
3.2 物資管理模塊
在伙食管理工作中,要求落實(shí)好實(shí)物驗(yàn)收制度、物資出庫(kù)登記制度、盤點(diǎn)制度[3]。物資入庫(kù)必須要有專人驗(yàn)收,對(duì)物資的品種、數(shù)量、金額進(jìn)行認(rèn)真核對(duì),按規(guī)定記賬。物資出庫(kù),要嚴(yán)格遵循出庫(kù)手續(xù),做好登記,定期進(jìn)行庫(kù)存物資盤點(diǎn)。在使用基于Android的伙食管理系統(tǒng)時(shí),在物資入庫(kù)階段,通過(guò)二維碼、NFC識(shí)別等方式實(shí)現(xiàn)入庫(kù)物資登記;物資出庫(kù)時(shí),通過(guò)掃描物資上的二維碼或電子秤打印的二維碼實(shí)現(xiàn)對(duì)出庫(kù)物資登記。整個(gè)過(guò)程不需要手工錄入,并能實(shí)時(shí)查看庫(kù)存情況。
3.3 賬務(wù)處理模塊
物資使用消耗、經(jīng)費(fèi)使用情況都應(yīng)記錄在賬務(wù)中。系統(tǒng)中應(yīng)按照財(cái)務(wù)相關(guān)規(guī)定,設(shè)置會(huì)計(jì)科目,并實(shí)現(xiàn)憑證的自動(dòng)生成和手動(dòng)錄入功能,可根據(jù)用戶所選定的日期范圍,計(jì)算經(jīng)費(fèi)分類賬的本期發(fā)生額和累計(jì)發(fā)生額,自動(dòng)生成周、月、季和年報(bào)表。
3.4 系統(tǒng)維護(hù)模塊
系統(tǒng)維護(hù)模塊實(shí)現(xiàn)用戶信息維護(hù)和系統(tǒng)數(shù)據(jù)的初始化、備份和恢復(fù),同時(shí)可對(duì)網(wǎng)絡(luò)連接信息進(jìn)行修改。
4 Android相關(guān)技術(shù)在系統(tǒng)中的應(yīng)用
4.1 信息采集
基于Android移動(dòng)終端進(jìn)行數(shù)據(jù)采集,可以綜合使用多種采集功能,在具體應(yīng)用中,通常使用的有條碼識(shí)別、NFC讀寫、攝像頭拍攝和地理信息采集等功能。
4.1.1 條碼識(shí)別
條碼是由一組條、空和數(shù)字符號(hào)組成,按一定編碼規(guī)則排列,用以表示一定的字符、數(shù)字和符號(hào)等信息,大體可以分為一維條碼和二維條碼。目前,在Android系統(tǒng)中進(jìn)行條碼生成與識(shí)別的技術(shù)已經(jīng)比較成熟,也有很多條碼的加密解密流程和算法,能夠保證條碼應(yīng)用的安全性。在伙食管理系統(tǒng)中,條碼識(shí)別技術(shù)可用于完成物資基礎(chǔ)信息的采集,獲取到物資的名稱、生產(chǎn)商、出廠時(shí)間、保質(zhì)期、重量等信息,實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)識(shí)別。開發(fā)程序中,首先調(diào)用并配置攝像頭構(gòu)建掃描窗口,方便條碼置于窗口內(nèi)時(shí)可以自動(dòng)識(shí)別,同時(shí)系統(tǒng)中設(shè)置監(jiān)聽器,在掃描窗口打開以后,監(jiān)聽條碼是否已經(jīng)捕捉,若捕捉成功,則系統(tǒng)得到解碼消息,執(zhí)行解碼程序;若失敗則繼續(xù)捕捉,不發(fā)送解碼消息。
4.1.2 NFC讀寫
RFID射頻識(shí)別標(biāo)簽通過(guò)無(wú)線射頻信號(hào)獲取物體的相關(guān)數(shù)據(jù),并對(duì)物體加以識(shí)別,實(shí)現(xiàn)了無(wú)需與被識(shí)別物體直接接觸,即可完成信息的輸入和處理[4]。Android中的NFC技術(shù),發(fā)源于RFID技術(shù),能向下兼容RFID技術(shù)。既可作為讀寫設(shè)備對(duì)RFID卡進(jìn)行讀寫,又能充當(dāng)RFID卡被其它設(shè)備讀寫。隨著RFID射頻識(shí)別標(biāo)簽成本的降低,越來(lái)越多的產(chǎn)品在出廠時(shí)都粘貼有射頻識(shí)別標(biāo)簽,通過(guò)Android移動(dòng)終端的NFC技術(shù),在移動(dòng)終端上可以快捷獲取到指定類別的射頻識(shí)別標(biāo)簽數(shù)據(jù)信息。
Android系統(tǒng)對(duì)NFC的支持主要在android.nfc和android.nfc.tech兩個(gè)包中。通過(guò)android.nfc包中的NfcManager類可以管理Android設(shè)備中的NFC Adapter。當(dāng)Android設(shè)備檢測(cè)到一個(gè)Tag時(shí),會(huì)創(chuàng)建一個(gè)Tag對(duì)象,將其放在Intent對(duì)象,然后發(fā)送到相應(yīng)的Activity。調(diào)用在android.nfc.tech中定義的NfcA、NfcB、NfcF、MifareClassic等類,實(shí)現(xiàn)對(duì)Tag進(jìn)行的讀寫操作。
4.1.3 攝像頭攝像
在伙食管理中需要采集相關(guān)圖像和視頻信息。傳統(tǒng)方式是使用獨(dú)立設(shè)備拍照或攝像,再將圖像與視頻拷貝到PC終端,或者在PC終端連接攝像頭,通過(guò)攝像軟件獲取圖像和視頻。這種方式需要單獨(dú)購(gòu)置攝像設(shè)備,成本較高、操作復(fù)雜,使用效率低。Android移動(dòng)終端集成有攝像頭,而且拍攝效果與卡片相機(jī)類似,能快速獲取相關(guān)圖像和視頻。在伙食管理系統(tǒng)中,既可借助Intent和MediaStore調(diào)用系統(tǒng)APP來(lái)實(shí)現(xiàn)拍照和攝像功能,也可依據(jù)Android系統(tǒng)Camera API編寫自定義攝像程序,來(lái)實(shí)現(xiàn)拍照和攝像功能。最后,對(duì)獲得的圖片和視頻進(jìn)行添加水印操作,保證圖像和視頻信息的實(shí)時(shí)性和真實(shí)性。
4.1.4 地理信息采集
Android移動(dòng)終端都集成有定位芯片,使用比較多的是GPS,也有使用我國(guó)自主研發(fā)的北斗導(dǎo)航系統(tǒng)。在伙食管理系統(tǒng)中使用Android設(shè)備獲取位置信息,可以實(shí)現(xiàn)對(duì)物資、裝備的監(jiān)控,有利于提高保障的精確性。開發(fā)過(guò)程中,Android系統(tǒng)提供了一套與定位相關(guān)的類,用于獲取經(jīng)緯度以及海拔信息。通過(guò)LocationProvider可以設(shè)置使用GPS定位還是使用北斗定位,再利用LocationManager對(duì)象獲取位置信息,通過(guò)調(diào)用getLatitude()方法可以獲得緯度數(shù)據(jù),調(diào)用getLongitude()方法獲取經(jīng)度數(shù)據(jù),調(diào)用getAltitude()方法返回海拔數(shù)據(jù)。
4.2 數(shù)據(jù)處理
4.2.1 數(shù)據(jù)存儲(chǔ)
Android系統(tǒng)提供了專門接口進(jìn)行數(shù)據(jù)的輸入和輸出,占用少量數(shù)據(jù)時(shí),可以使用普通文件進(jìn)行保存;涉及到大量數(shù)據(jù)時(shí),可以使用內(nèi)置的SQLite數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)訪問。SQLite是一個(gè)輕量級(jí)數(shù)據(jù)庫(kù),但其管理的數(shù)據(jù)量高達(dá)2TB,且沒有后臺(tái)進(jìn)程,整個(gè)數(shù)據(jù)庫(kù)僅對(duì)應(yīng)于一個(gè)文件,便于在不同設(shè)備之間移植。開發(fā)者可使用SQL語(yǔ)句操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),還可利用Android提供的SQLiteOpenHelper類和SQLiteDatabase類對(duì)數(shù)據(jù)庫(kù)進(jìn)行創(chuàng)建、打開、關(guān)閉和增刪改查操作。實(shí)際中,通過(guò)創(chuàng)建SQLiteOpenHelper的子類,拓展它的onCreate()和onUpgrade()方法來(lái)管理數(shù)據(jù)庫(kù)的創(chuàng)建和版本更新;通過(guò)SQLiteDatabase類提供的insert、update、delete、query等方法完成數(shù)據(jù)的增刪改查操作。
4.2.2 數(shù)據(jù)傳輸
當(dāng)前,Android客戶端和服務(wù)器交互方式主要有Socket傳輸、WebService傳輸、Post/Get獲取數(shù)據(jù)3種方式[5]。其中,Socket傳輸基于TCP、UDP協(xié)議,WebService傳輸基于SOAP協(xié)議,Post/Get獲取數(shù)據(jù)方式基于HTTP協(xié)議。在伙食管理系統(tǒng)開發(fā)中,通過(guò)調(diào)用Android SDK的Socket,基于TCP/IP協(xié)議,通過(guò)WIFI連接的方式訪問服務(wù)器,將SQLite數(shù)據(jù)庫(kù)中的數(shù)據(jù)上傳到服務(wù)器;數(shù)據(jù)傳輸過(guò)程中,客戶端和服務(wù)端都要接收發(fā)送數(shù)據(jù),完成數(shù)據(jù)的拼接、解析,并驗(yàn)證數(shù)據(jù)完整性。在無(wú)線網(wǎng)不能正常連接時(shí),可以通過(guò)藍(lán)牙、USB等連接方式將移動(dòng)終端與PC終端連接起來(lái),將移動(dòng)終端的數(shù)據(jù)庫(kù)拷貝到PC終端,再通過(guò)PC終端將數(shù)據(jù)上傳到數(shù)據(jù)庫(kù)服務(wù)器。
4.2.3 數(shù)據(jù)呈現(xiàn)
Android系統(tǒng)的數(shù)據(jù)呈現(xiàn)方式非常豐富,可以使用表格、柱狀圖、曲線圖、餅狀圖等多種形式,還可以展現(xiàn)圖片和視頻信息。Android移動(dòng)終端采集的各種數(shù)據(jù),一方面可以通過(guò)本機(jī)的計(jì)算、處理匯總成表格、圖像呈現(xiàn)給操作人員;另一方面將移動(dòng)端的數(shù)據(jù)上傳到服務(wù)器后,結(jié)合服務(wù)器上存儲(chǔ)的歷史數(shù)據(jù)形成一個(gè)長(zhǎng)期的、宏觀的匯總結(jié)果,反饋到移動(dòng)終端、PC終端,為管理人員提供數(shù)據(jù)支撐和決策依據(jù)。這種方式能充分發(fā)揮服務(wù)器強(qiáng)大的數(shù)據(jù)處理能力,Android移動(dòng)終端不進(jìn)行大型的數(shù)據(jù)運(yùn)算,只需呈現(xiàn)數(shù)據(jù)分析處理結(jié)果。
5 結(jié)語(yǔ)
當(dāng)前,伙食管理系統(tǒng)主要基于傳統(tǒng)的PC平臺(tái),而PC平臺(tái)缺乏便攜性,易受使用環(huán)境的制約,致使數(shù)據(jù)填報(bào)不真實(shí)、上報(bào)不及時(shí)。基于Android的伙食管理系統(tǒng)能夠補(bǔ)足傳統(tǒng)模式的短板,一方面可以基于移動(dòng)終端處理相關(guān)業(yè)務(wù),另一方面可以實(shí)時(shí)進(jìn)行數(shù)據(jù)采集和處理,確保了信息統(tǒng)計(jì)、上報(bào)的及時(shí)性、規(guī)范性和有效性,實(shí)現(xiàn)了伙食管理的自動(dòng)化、智能化和科學(xué)化。
參考文獻(xiàn):
[1]李婷,周蘭,閔棟,等.指尖上的革命—移動(dòng)智能終端[M].北京:電子工業(yè)出版社,2014.
[2]RETO MEIER.Professional android application development[M]. Wrox Press Ltd,2008.
[3]賀德富.給養(yǎng)信息統(tǒng)計(jì)監(jiān)測(cè)理論與實(shí)踐[M].北京:軍事科學(xué)出版社,2015.
[4]黃玉蘭.物聯(lián)網(wǎng)射頻識(shí)別(RFID)核心技術(shù)詳解[M].北京:人民郵電出版社,2012.
[5]BUITRON-DAMASO,MORALES-LUNA.HTTPS connections over Android[C].2011 8th International Conference on Electrical Engineering Computing Science and Automatic Control(CCE),2011:1-4.
(責(zé)任編輯:孫 娟)