李宇翔 李敏 方輝 楊紹鍔 謝國(guó)雪 黃啟廳
(1 廣西農(nóng)業(yè)科學(xué)院 廣西南寧 530007;2 廣西農(nóng)業(yè)科學(xué)院農(nóng)業(yè)科技信息研究所 廣西南寧 530007)
隨著新一代北斗衛(wèi)星導(dǎo)航系統(tǒng)(簡(jiǎn)稱北斗系統(tǒng))(BeiDou Navigation Satellite System,BDS)正式商用,基于BDS定位的研究變得活躍起來。有研究表明,BDS 對(duì)于智能電網(wǎng)的發(fā)展具有重要的推動(dòng)作用,如融合大數(shù)據(jù)、云計(jì)算、移動(dòng)互聯(lián)網(wǎng)等技術(shù),BDS 將是未來智能電網(wǎng)的基礎(chǔ)支撐組件[1]。周恩澤等[2]結(jié)合農(nóng)業(yè)信息采集特征,利用GPS 技術(shù)開發(fā)了農(nóng)業(yè)信息計(jì)算機(jī)采集系統(tǒng),進(jìn)而支持農(nóng)業(yè)種植,為農(nóng)業(yè)現(xiàn)代化提供新的手段。閻逸堯等[3]設(shè)計(jì)基于BDS 軌道衛(wèi)星搜救信號(hào)的接收機(jī),成功捕獲跟蹤并實(shí)現(xiàn)實(shí)時(shí)定位,有效滿足地面系統(tǒng)工程建設(shè)的測(cè)試需求。最近的一些研究也將BDS技術(shù)融入到智能系統(tǒng)的開發(fā)中,徐愛功等[4]利用BDS 復(fù)雜場(chǎng)景下的精確定位優(yōu)勢(shì),實(shí)現(xiàn)城市環(huán)境下車輛的協(xié)同定位。針對(duì)單一導(dǎo)航系統(tǒng)因受外界因素干擾而易造成定位精度低的問題,彭元等[5]設(shè)計(jì)GPS/BDS組合的差分定位方法,將其嵌套于移動(dòng)設(shè)備上,有效提高了定位精度。為提高農(nóng)業(yè)補(bǔ)貼申報(bào)與審核工作效率,運(yùn)用信息技術(shù)手段開發(fā)高性能、操作簡(jiǎn)便的信息管理系統(tǒng)與移動(dòng)APP成為當(dāng)下的重要途徑[6-7]。謝秋波等[8]開發(fā)一種一站式的農(nóng)機(jī)購(gòu)置補(bǔ)貼審批管理系統(tǒng),實(shí)現(xiàn)農(nóng)機(jī)購(gòu)置補(bǔ)貼高效發(fā)放。肖敏[9]、曉雨[10]均介紹了一種可通過手機(jī)快速完成申報(bào)補(bǔ)貼的方法。但以上研究多針對(duì)于提高管理端的工作效率,對(duì)于補(bǔ)貼申請(qǐng)流程的簡(jiǎn)化、數(shù)據(jù)的快速核查等沒有相關(guān)的解決方案。近年來,BDS 在農(nóng)業(yè)領(lǐng)域的應(yīng)用越來越廣泛。彭曉琴等[11]針對(duì)北斗衛(wèi)星導(dǎo)航系統(tǒng)在農(nóng)業(yè)農(nóng)機(jī)中的應(yīng)用作了歸納,其中提到,BDS 在農(nóng)業(yè)航空、農(nóng)田信息采集與測(cè)土配方施肥、跨區(qū)域作業(yè)農(nóng)機(jī)監(jiān)管、機(jī)耕道、農(nóng)田灌排渠道選線和地籍測(cè)繪等方面均較多的應(yīng)用,表明了BDS技術(shù)在農(nóng)業(yè)領(lǐng)域應(yīng)用的可行性。為解決機(jī)械作業(yè)補(bǔ)貼申報(bào)數(shù)據(jù)的真實(shí)性及快速核算的問題,基于BDS 衛(wèi)星定位開發(fā)糖料蔗機(jī)械作業(yè)補(bǔ)貼移動(dòng)APP,以此來完成補(bǔ)貼申報(bào)。通過BDS定位技術(shù)實(shí)現(xiàn)機(jī)械作業(yè)面積的計(jì)算統(tǒng)計(jì),并傳送到系統(tǒng)數(shù)據(jù)庫,最終通過PC端完成審核工作。
Android 系統(tǒng)通過API 調(diào)用地理定位服務(wù)獲取當(dāng)前所處的坐標(biāo)點(diǎn)位置,APP 通過設(shè)定時(shí)間間隔來記錄坐標(biāo)點(diǎn)。首先通過getSystemService方法調(diào)用LocationManager來獲取定位服務(wù),然后在移動(dòng)設(shè)備中獲取當(dāng)下坐標(biāo)相應(yīng)信息;期間通過LocationListener 監(jiān)聽位置變化,當(dāng)坐標(biāo)位置信息發(fā)生改變時(shí)觸發(fā)onLocationChanged 函數(shù),最后通過onProviderDisabled結(jié)束定位。
系統(tǒng)采用Visual Studio Code 作為開發(fā)工具,前端采用node.js技術(shù)框架,其擁有強(qiáng)大的代碼和模塊化管理工具,用作本項(xiàng)目第三方模塊引入,并進(jìn)行模塊化管理。本項(xiàng)目還依賴于node.js進(jìn)行編譯打包發(fā)布的操作。項(xiàng)目需要使用node.js 的npm install 命令進(jìn)行模塊初始化操作,調(diào)試運(yùn)行只需要在命令時(shí)執(zhí)行npm run 即可;發(fā)布運(yùn)行則需運(yùn)行npm build 操作,操作非常便捷。系統(tǒng)后端采用Java 開發(fā)的Spring Mvc 的Web 服務(wù)開源框架,該框架用于Jsp,但也可單獨(dú)作為一個(gè)Web 服務(wù)系統(tǒng)運(yùn)作。在服務(wù)層采用Http 協(xié)議進(jìn)行數(shù)據(jù)交互,將json 作為數(shù)據(jù)交互格式。json 數(shù)據(jù)格式與java bean 對(duì)象可通過較多工具進(jìn)行相互轉(zhuǎn)化,Vue.js可以直接將json 轉(zhuǎn)化成對(duì)象進(jìn)行使用。與傳統(tǒng)標(biāo)單數(shù)據(jù)和url 參數(shù)相比,標(biāo)準(zhǔn)的json 數(shù)據(jù)的序列化操作更為簡(jiǎn)便,可減少數(shù)據(jù)處理的編碼工作。系統(tǒng)技術(shù)框架見圖1。
圖1 系統(tǒng)技術(shù)框架
數(shù)據(jù)庫設(shè)計(jì)遵循原子性、原始性、演繹性、穩(wěn)定性的基本原則,考慮到系統(tǒng)的性能會(huì)受到數(shù)據(jù)庫的影響,設(shè)計(jì)一個(gè)簡(jiǎn)潔、高效、全面的數(shù)據(jù)庫尤為重要。系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)采用關(guān)系型的范式設(shè)計(jì),通過將數(shù)據(jù)表關(guān)聯(lián)、部分邏輯業(yè)務(wù)在DBA完成,以減少數(shù)據(jù)庫的冗余性,降低程序出錯(cuò)的概率,提升其效率。記錄點(diǎn)坐標(biāo)表設(shè)計(jì)見表1。
表1 點(diǎn)坐標(biāo)表
APP 端主要實(shí)現(xiàn)補(bǔ)貼申報(bào)功能,按照申報(bào)流程,其步驟包括作業(yè)報(bào)備、作業(yè)信息采集、補(bǔ)貼審批、公示。申請(qǐng)流程如圖2所示,功能用例說明如圖3所示。
2.2.1 登錄設(shè)計(jì)
前臺(tái)登錄頁面發(fā)出攜帶用戶填寫的用戶名密碼參數(shù)的請(qǐng)求,訪問后臺(tái)登錄接口,該接口解析獲取請(qǐng)求中的用戶名密碼參數(shù),后臺(tái)數(shù)據(jù)庫進(jìn)行信息比對(duì),登錄成功后生成獨(dú)立的Token存放,前端頁面獲取相應(yīng)Token 后進(jìn)行數(shù)據(jù)訪問,后臺(tái)Ehcache 對(duì)請(qǐng)求進(jìn)行解析匹對(duì),若信息正確則允許登錄。
2.2.2 訂單設(shè)計(jì)
PC 端界面功能模塊采用列表導(dǎo)航形式,在審批子列表中點(diǎn)擊機(jī)械作業(yè)獲取數(shù)據(jù)調(diào)用接口,根據(jù)匹配的用戶權(quán)限返回對(duì)應(yīng)的數(shù)據(jù);每個(gè)訂單項(xiàng)設(shè)計(jì)詳情按鈕,點(diǎn)擊訂單詳情訪問數(shù)據(jù)接口,根據(jù)匹配的用戶信息按權(quán)限反饋,若用戶權(quán)限允許則跳轉(zhuǎn)到訂單詳情頁面,頁面信息包括地塊數(shù)據(jù)、佐證數(shù)據(jù)、坐標(biāo)數(shù)據(jù)、審核狀態(tài)等信息。
圖2 作業(yè)補(bǔ)貼申請(qǐng)流程
圖3 系統(tǒng)用例說明
2.2.3 審核設(shè)計(jì)
在審批模塊中選擇機(jī)械作業(yè),系統(tǒng)判斷當(dāng)前用戶權(quán)限,權(quán)限允許則進(jìn)入機(jī)械作業(yè)補(bǔ)貼審核界面,在審核界面中分為審批詳情與審批進(jìn)度兩部分。審核員根據(jù)系統(tǒng)計(jì)算與自報(bào)數(shù)據(jù)比對(duì)進(jìn)行審核,審核通過即記錄審核時(shí)間以及變更訂單狀態(tài),在審批進(jìn)度中查看流轉(zhuǎn)到的審核部門。
2.2.4 抽查模塊
抽查設(shè)計(jì)分指定抽查與隨機(jī)抽查2個(gè)類型。其中隨機(jī)抽查選定數(shù)量和通過率后,指定抽查點(diǎn)時(shí)按糖企或行政區(qū)域進(jìn)行選擇,后臺(tái)從用戶角色權(quán)限操作的訂單中隨機(jī)抽取相應(yīng)數(shù)量的工單,生成相應(yīng)抽查記錄和關(guān)聯(lián)數(shù)據(jù)。統(tǒng)計(jì)抽查工單并形成抽查記錄列表,系統(tǒng)將抽查記錄和對(duì)應(yīng)訂單、同級(jí)且同區(qū)域的用戶關(guān)聯(lián),用戶登錄可查看自己的申請(qǐng)是否在抽查名單中。
于前端頁面點(diǎn)擊抽查管理發(fā)送請(qǐng)求,后臺(tái)可根據(jù)相應(yīng)條件查詢出相應(yīng)數(shù)據(jù);點(diǎn)擊導(dǎo)出按鈕導(dǎo)出相應(yīng)抽查數(shù)據(jù)文件保存至本地,點(diǎn)擊抽查審核按鈕展示抽查訂單數(shù)據(jù)列表,填寫審核意見發(fā)送請(qǐng)求至后臺(tái),后臺(tái)接收參數(shù)生成相應(yīng)抽查的審核記錄。點(diǎn)擊取消抽查則取消未完成的抽查記錄。
2.2.5 賬號(hào)管理模塊
賬號(hào)管理實(shí)現(xiàn)用戶添加、刪除,當(dāng)前賬號(hào)新增賬號(hào)時(shí)將請(qǐng)求發(fā)送至后臺(tái),后臺(tái)接收參數(shù)判斷創(chuàng)建的賬戶級(jí)別,如權(quán)限級(jí)別高于本賬戶級(jí)別則添加失敗,若低于當(dāng)前賬戶權(quán)限級(jí)別則允許添加,賬戶生成后密碼的修改操作只能由本賬戶進(jìn)行。
2.2.6 地址管理模塊
地址管理模塊主要實(shí)現(xiàn)全區(qū)甘蔗產(chǎn)區(qū)地址管理。按照行政區(qū)域劃分,新增地址必須符合規(guī)范的行政編碼。管理用戶新增或修改地址,符合規(guī)范則允許插入,否則返回相應(yīng)提示信息。
APP 基于 Element UI 與 Vue.js設(shè)計(jì)響應(yīng)式頁面交互模式,在不同的安卓設(shè)備上有較好的使用體驗(yàn)感。在打開APP后,會(huì)提示授權(quán)APP 獲取定位、開啟相機(jī)、存儲(chǔ)功能3 個(gè)權(quán)限,此為申報(bào)所需權(quán)限,禁止后部分功能無法使用。由于不同手機(jī)的提示不同,根據(jù)手機(jī)提示給APP 授權(quán)。進(jìn)入APP首頁后不會(huì)強(qiáng)制登錄,需要登錄點(diǎn)擊右下角個(gè)人中心,切換到個(gè)人中心再點(diǎn)擊注冊(cè)或登錄,退出登錄也在個(gè)人中心操作。APP 界面設(shè)計(jì)如圖4所示。
機(jī)械作業(yè)補(bǔ)貼申請(qǐng)地塊信息采集需在系統(tǒng)內(nèi)建立地塊信息檔案,包含地塊位置、地塊范圍、地塊面積、所屬者、聯(lián)系方式等。
地塊信息需要信息采集員使用手機(jī)APP的定位功能獲取種植地塊的范圍。信息采集員在地塊內(nèi)手持手機(jī)步行一圈,以確定地塊位置與面積,作為與作業(yè)面積對(duì)比的基礎(chǔ)數(shù)據(jù)。在步行過程中,遇到轉(zhuǎn)角的情況需要降低行走速度,令手機(jī)能夠充分獲取定位信息,并且提高手機(jī)采集定位信息的頻率(每?jī)擅氩杉淮危?,以提高地塊面積的提取精度。采集員完成作業(yè)報(bào)備后進(jìn)行實(shí)際作業(yè),作業(yè)過程中,農(nóng)機(jī)設(shè)備上的攝像設(shè)備與北斗設(shè)備將進(jìn)行拍照與作業(yè)軌跡記錄。作業(yè)完成后上傳相關(guān)證明材料并提交申請(qǐng)。地塊面積獲取實(shí)現(xiàn)如圖5所示,機(jī)械作業(yè)界面實(shí)現(xiàn)如圖6、7所示。
圖4 APP首頁設(shè)計(jì)
系統(tǒng)自動(dòng)統(tǒng)計(jì)功能將報(bào)備作業(yè)面積、作業(yè)量,與實(shí)際作業(yè)面積、作業(yè)量進(jìn)行對(duì)比,異常數(shù)據(jù)在系統(tǒng)中高亮顯示,需要當(dāng)?shù)毓ぷ魅藛T對(duì)補(bǔ)貼申請(qǐng)對(duì)象進(jìn)行詳細(xì)審核。
審核界面以列表形式展示,列表內(nèi)設(shè)置“詳細(xì)”按鈕,點(diǎn)擊后展示上述各項(xiàng)需要審核的項(xiàng)目。在審核列表中,可進(jìn)行單條申請(qǐng)記錄的審核,也可以勾選多條申請(qǐng)記錄后進(jìn)行批量審核。審核通過的申請(qǐng)將被設(shè)置為“通過”狀態(tài),審核不通過的設(shè)置為“不通過”狀態(tài),如已進(jìn)入審核階段,顯示當(dāng)前的審核部門及狀態(tài)。審核結(jié)果將進(jìn)入統(tǒng)計(jì)匯總環(huán)節(jié)。機(jī)械作業(yè)管理實(shí)現(xiàn)如圖8所示。
圖5 作業(yè)面積獲取實(shí)現(xiàn)
圖6 業(yè)信息采集實(shí)現(xiàn)
圖7 作業(yè)信息采集實(shí)現(xiàn)
軟件測(cè)試覆蓋當(dāng)前主流的50 部不同品牌、不同型號(hào)安卓系統(tǒng)手機(jī)。測(cè)試通過47 部,覆蓋用戶數(shù)221 萬,通過率94%,表明軟件的兼容性較強(qiáng)。測(cè)試總體概況如圖9 所示。未通過測(cè)試3 部,出現(xiàn)APP Crash問題2部,進(jìn)程退出問題1部。問題概況如圖10所示。
性能測(cè)試主要從APP 安裝耗時(shí)、啟動(dòng)耗時(shí)、CPU 占用、內(nèi)存峰值占用情況進(jìn)行測(cè)試。測(cè)試結(jié)果顯示,50 部參試手機(jī)安裝耗時(shí)集中在0~5.11s,啟動(dòng)耗時(shí)集中分布在0~0.72 s,平均CPU 占用率均在0~20%。內(nèi)存峰值占用分布集中在100~200 M,其FPS 時(shí)間基本都小于16 ms,證明軟件的流暢度較高。部分測(cè)試通過機(jī)型性能如圖11 所示,總體測(cè)試性能分析如圖12所示。
隨著信息技術(shù)在農(nóng)業(yè)應(yīng)用領(lǐng)域的不斷深入,便捷的移動(dòng)智能管理方法成為農(nóng)業(yè)信息化的一個(gè)重要手段。本文有效利用BDS定位的優(yōu)勢(shì),設(shè)計(jì)并實(shí)現(xiàn)一種糖料蔗機(jī)械作業(yè)補(bǔ)貼系統(tǒng)。得益于友好的響應(yīng)式交互和系統(tǒng)關(guān)系型補(bǔ)貼數(shù)據(jù)庫,APP 可以實(shí)現(xiàn)部分?jǐn)?shù)據(jù)自動(dòng)采集,幫助補(bǔ)貼申請(qǐng)者快速完成補(bǔ)貼數(shù)據(jù)采集、填報(bào)工作,管理人員可便捷審核補(bǔ)貼發(fā)放工作,改變了傳統(tǒng)的補(bǔ)貼發(fā)放模式,實(shí)現(xiàn)糖料蔗補(bǔ)貼申請(qǐng)、審核、發(fā)放信息化,從而提高整體補(bǔ)貼工作效率,降低勞動(dòng)力成本、創(chuàng)新了補(bǔ)貼發(fā)放管理模式。該系統(tǒng)具有穩(wěn)定性良好、操作便捷、實(shí)用性高等優(yōu)點(diǎn)。
圖8 機(jī)械作業(yè)管理模塊測(cè)試結(jié)果
圖9 測(cè)試總體概況
圖10 問題概況
圖11 部分測(cè)試通過機(jī)型性能
圖12 總體性能分析情況