邱 源,劉江南,邱勝海,李光榮
(1.上??萍即髮W(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201210;2.南京工程學(xué)院 機(jī)械工程學(xué)院,江蘇 南京 211167)
隨著政府對(duì)農(nóng)業(yè)農(nóng)機(jī)具購(gòu)置補(bǔ)貼政策的扶持以及中央財(cái)政補(bǔ)助資金規(guī)模逐年擴(kuò)大,近年來(lái)已經(jīng)達(dá)到數(shù)百億之多,國(guó)家處于農(nóng)業(yè)機(jī)械化全面轉(zhuǎn)型升級(jí)的黃金發(fā)展階段,而快速發(fā)展存在農(nóng)機(jī)具維修難、配套難及管理落后等一系列問(wèn)題,如農(nóng)機(jī)具制造商和經(jīng)銷商在政府的扶持政策下更傾向于整機(jī)的銷售,對(duì)于配件的維修服務(wù)的管理方面存在諸多不足。例如國(guó)內(nèi)蘇北地區(qū),對(duì)農(nóng)機(jī)維修網(wǎng)點(diǎn)現(xiàn)實(shí)狀況進(jìn)行分析,此地區(qū)的農(nóng)機(jī)具分布比較分散,使用情況不集中,常常會(huì)出現(xiàn)有關(guān)維修人員無(wú)法在第一時(shí)間趕往現(xiàn)場(chǎng),如果出現(xiàn)問(wèn)題的農(nóng)機(jī)具已經(jīng)過(guò)了三包期限,將無(wú)法保修,需要支付額外的維修費(fèi)用,部分不了解情況的用戶難以接受。經(jīng)過(guò)調(diào)研與分析后,農(nóng)機(jī)維修市場(chǎng)主要存在的問(wèn)題包括:農(nóng)機(jī)維修網(wǎng)點(diǎn)規(guī)模小,維修能力較為有限;專業(yè)維修技術(shù)人員較少,維修技術(shù)水平較低;很多的維修站點(diǎn)的技術(shù)人員并沒(méi)有專業(yè)的手段,操作不規(guī)范、維修條件差、維修設(shè)備不足等都會(huì)在維修的過(guò)程中出現(xiàn),容易導(dǎo)致安全隱患,導(dǎo)致農(nóng)機(jī)具無(wú)法正常運(yùn)行。目前農(nóng)戶往往根據(jù)農(nóng)機(jī)自行配套農(nóng)機(jī)具,也造成農(nóng)機(jī)與機(jī)具配套不合理、故障頻發(fā)的現(xiàn)象,存在很大的安全隱患。隨著信息技術(shù)迅速發(fā)展,云計(jì)算、互聯(lián)網(wǎng)、物聯(lián)網(wǎng)以及大數(shù)據(jù)等的建設(shè)應(yīng)用催生了社會(huì)產(chǎn)業(yè)結(jié)構(gòu)的變革,使社會(huì)經(jīng)濟(jì)發(fā)展態(tài)勢(shì)發(fā)生了重大改變。在“互聯(lián)網(wǎng)+”時(shí)代,逐漸呈現(xiàn)“新業(yè)態(tài),深融合”態(tài)勢(shì),產(chǎn)業(yè)結(jié)構(gòu)不斷變革,產(chǎn)業(yè)鏈不斷細(xì)化,商業(yè)模式不斷創(chuàng)新[1-3]?!盎ヂ?lián)網(wǎng)+”農(nóng)業(yè)經(jīng)濟(jì)逐漸成為新農(nóng)村建設(shè)的重要樞紐,是解決“三農(nóng)”問(wèn)題的主要支撐技術(shù),必將成為農(nóng)民從事農(nóng)業(yè)生產(chǎn)和管理的新興工具,是實(shí)現(xiàn)農(nóng)業(yè)現(xiàn)代化的關(guān)鍵[4]。如果將互聯(lián)網(wǎng)技術(shù)運(yùn)用在農(nóng)機(jī)供應(yīng)中,將會(huì)有效解決農(nóng)機(jī)與農(nóng)機(jī)具不配套的問(wèn)題,如農(nóng)民在采購(gòu)農(nóng)機(jī)時(shí)可以通過(guò)互聯(lián)網(wǎng)了解農(nóng)機(jī)廠家信譽(yù)、生產(chǎn)機(jī)型、配置參數(shù)、與之配套的農(nóng)機(jī)具產(chǎn)品及信譽(yù)情況,有益于農(nóng)機(jī)產(chǎn)品的選購(gòu),因此引入“互聯(lián)網(wǎng)+”將成為農(nóng)機(jī)供應(yīng)新的發(fā)展模式[5]。開啟“互聯(lián)網(wǎng)+”模式,還可以將農(nóng)機(jī)具安全宣傳、操作培訓(xùn)、隱患排查、人員管理等內(nèi)容納入電子信息平臺(tái)管理,是貫徹“科技興安”戰(zhàn)略、提高政府農(nóng)機(jī)安全監(jiān)管和農(nóng)民機(jī)手安全保障能力的重要途徑[6]。
基于互聯(lián)網(wǎng)的農(nóng)機(jī)具維修及配套管理信息系統(tǒng)(repair and support system of agricultural machinery and tool,RSSAMT)可以提高農(nóng)機(jī)具管理效率,降低農(nóng)機(jī)配件的管理成本,從而達(dá)到提高服務(wù)質(zhì)量、節(jié)省服務(wù)成本的目的?;贘AVA EE體系架構(gòu)、Shiro安全框架以及微信小程序等技術(shù)來(lái)構(gòu)建農(nóng)機(jī)具維修及配套管理網(wǎng)絡(luò)系統(tǒng),JAVA EE體系架構(gòu)能保證該管理平臺(tái)具有可擴(kuò)展、安全可靠、跨平臺(tái)、面向?qū)ο蟮葍?yōu)點(diǎn)[7];Shiro安全框架可實(shí)現(xiàn)用戶認(rèn)證、用戶授權(quán)等功能,使得系統(tǒng)具有較好的安全性[8-9]。微信小程序客戶端架構(gòu)在微信公共平臺(tái)之上,具有無(wú)需安裝、無(wú)需卸載等優(yōu)點(diǎn),給用戶提供了更好的網(wǎng)絡(luò)體驗(yàn)[10]。
根據(jù)對(duì)N市、JN縣(區(qū))、S鎮(zhèn)和農(nóng)機(jī)具的四級(jí)用戶以及農(nóng)機(jī)供應(yīng)商、農(nóng)具配套商等企業(yè)進(jìn)行調(diào)研,對(duì)收集的各類單據(jù)及報(bào)表等信息進(jìn)行分析,將RSSAMT系統(tǒng)功能劃分為七個(gè)子系統(tǒng),其功能分別描述如下:
系統(tǒng)管理:用于管理用戶、角色及其權(quán)限模塊,其功能為管理用戶(四級(jí)用戶)登錄信息、個(gè)人詳細(xì)信息,各類經(jīng)銷商等信息、角色信息、用戶權(quán)限分配等。
配件管理:用于管理農(nóng)機(jī)具的配件信息,配件信息包括配件名稱,配件編碼、頁(yè)碼、價(jià)格、數(shù)量、圖片等。
整機(jī)管理:用于管理農(nóng)機(jī)整機(jī)信息,在此模塊,大小經(jīng)銷商可以錄入整機(jī)的信息,并且進(jìn)行簡(jiǎn)單的查詢。列表中對(duì)整機(jī)的操作有三種,解析pdf、編輯、刪除,方便用戶對(duì)于整機(jī)整體的了解。
維修管理:用于管理用戶提交的維修單信息。用戶可以在本系統(tǒng)中選擇配件維修申請(qǐng),在維修單中需要填寫設(shè)備的使用時(shí)長(zhǎng)、不良狀況、故障日期等信息,并選擇對(duì)應(yīng)的經(jīng)銷商,確定該經(jīng)銷商代理的需要維修的農(nóng)機(jī)具配件,系統(tǒng)會(huì)自動(dòng)顯示不良零件所對(duì)應(yīng)的農(nóng)機(jī)具的機(jī)型、發(fā)動(dòng)機(jī)編號(hào)等信息,在填寫不良情況內(nèi)容后,便可提交維修單。提交后的維修單即可在微信平臺(tái)“我的維修單”界面中查詢到;經(jīng)銷商可以對(duì)用戶提交的維修單進(jìn)行部分信息的修正,并且對(duì)維修單進(jìn)行審核,同時(shí)指定對(duì)應(yīng)的服務(wù)商來(lái)為用戶提供維修服務(wù)。在經(jīng)銷商指定了對(duì)應(yīng)的服務(wù)商之后,服務(wù)商可在維修單選擇“維修服務(wù)提供”,能夠查詢到經(jīng)銷商審核通過(guò)的維修單信息,并且對(duì)維修單進(jìn)行剩余信息的完善,包括維修人員推定的零件故障的原因、維修日期、修理者、修理人員聯(lián)系方式等,維修單分為維修中和維修完成兩個(gè)狀態(tài)。
訂單管理:用于管理需要維修采購(gòu)的訂單及訂單明細(xì)信息,在訂單管理模塊中有訂單信息列表,列表操作包括訂單明細(xì)查看、訂單刪除,需求表導(dǎo)出、訂購(gòu)單導(dǎo)出等功能,便于用戶及經(jīng)銷商對(duì)自己的訂購(gòu)信息進(jìn)行記錄與管理,用戶可根據(jù)訂單號(hào)、訂單審核狀態(tài)、訂單創(chuàng)建時(shí)間段來(lái)查詢自己的訂單詳細(xì)信息。
實(shí)時(shí)消息管理:用于各農(nóng)機(jī)站內(nèi)的消息通信,方便用戶之間的溝通。
綜合查詢:用于農(nóng)機(jī)整機(jī)及各類配件信息的綜合查詢,支持多個(gè)條件下的精確和模糊查詢。
微信小程序:用戶能夠通過(guò)微信小程序APP來(lái)注冊(cè)登錄系統(tǒng),通過(guò)掃碼或輸入關(guān)鍵字來(lái)查詢配件信息,提交訂單、配件維修單及訂單的狀態(tài)。
RSSAMT系統(tǒng)功能結(jié)構(gòu)如圖1中表示層所示。
圖1 RSSAMT系統(tǒng)的總體架構(gòu)
根據(jù)RSSAMT系統(tǒng)的功能描述及數(shù)據(jù)收集情況,分析得到系統(tǒng)的主要實(shí)體有:農(nóng)機(jī)經(jīng)銷商、整機(jī)信息、配件信息、部門、訂單、維修單、角色與權(quán)限等。其中農(nóng)機(jī)經(jīng)銷商與整機(jī)信息、農(nóng)機(jī)經(jīng)銷商與配件信息、訂單與配件信息、維修單與配件信息、用戶與角色、用戶角色與功能屬于多對(duì)多的聯(lián)系、其他如部門與用戶、用戶與訂單、用戶與維修單等是一對(duì)多聯(lián)系,設(shè)計(jì)RSSAMT概念模型(E-R圖),如圖2所示。
圖2 RSSAMT系統(tǒng)的數(shù)據(jù)庫(kù)概念模型
根據(jù)數(shù)據(jù)庫(kù)規(guī)范化理論及數(shù)據(jù)庫(kù)性能要求,對(duì)圖2進(jìn)行邏輯設(shè)計(jì),使之達(dá)到3NF,邏輯設(shè)計(jì)模型如下所示(邏輯模型包含了實(shí)體的主要屬性,其中帶下劃線的為主屬性,波浪線的為外屬性)。
經(jīng)銷商(經(jīng)銷商ID,名稱,法人,地址等)、整機(jī)(整機(jī)ID,型號(hào),生產(chǎn)廠商,經(jīng)銷商等)、配件(配件ID,配件名稱,頁(yè)碼,經(jīng)銷商,數(shù)量,價(jià)格等)、用戶權(quán)限(用戶ID,角色I(xiàn)D,功能ID,有效標(biāo)志等)、訂單(訂單編號(hào),用戶ID,日期,狀態(tài)等)、訂單明細(xì)(序號(hào),訂單編號(hào),配件ID,數(shù)量,折扣價(jià)等)、維修單(維修單編號(hào),用戶ID,日期,故障原因等)、維修單明細(xì)(序號(hào),維修單編號(hào),使用配件ID,需要數(shù)量等)。
RSSAMT系統(tǒng)采用J2EE分布式多層次架構(gòu)軟件體系(BSSM框架集,由Bootstrap、Spring、SpringMVC 和MyBatis構(gòu)成)設(shè)計(jì)[11-16],自底向上分別為數(shù)據(jù)庫(kù)層、數(shù)據(jù)訪問(wèn)層、業(yè)務(wù)層、控制層、表示層和客戶端,該架構(gòu)分離了控制器、模型對(duì)象以及分派器的角色,使各個(gè)部分松散耦合,簡(jiǎn)化系統(tǒng)的復(fù)雜度。每層的功能描述如下:
數(shù)據(jù)庫(kù)層采用功能強(qiáng)大的MySQL關(guān)系型數(shù)據(jù)庫(kù)及Redis緩存數(shù)據(jù)庫(kù);模型層負(fù)責(zé)存放封裝數(shù)據(jù)表信息、查詢條件信息以及請(qǐng)求信息的實(shí)體類;數(shù)據(jù)訪問(wèn)層DAO集成MyBatis持久層對(duì)象映射開源框架,可以減輕DAO層的開發(fā)工作量,大幅提高持久層的開發(fā)效率;業(yè)務(wù)層負(fù)責(zé)定義若干業(yè)務(wù)接口類及對(duì)應(yīng)的實(shí)現(xiàn)類,在實(shí)現(xiàn)類中引用DAO接口,通過(guò)注解注入DAO接口,獲得數(shù)據(jù)訪問(wèn)功能??刂茖迂?fù)責(zé)存放各種處理前端請(qǐng)求數(shù)據(jù)、返回視圖View或JSON數(shù)據(jù)給控制器。
表示層采用Bootstrap前端開源框架,融合HTML、CSS、JavaScript等技術(shù),具有富客戶端界面、動(dòng)態(tài)響應(yīng)速度快及客戶體驗(yàn)好等特點(diǎn)。表示層負(fù)責(zé)存放靜態(tài)資源,系統(tǒng)默認(rèn)可以訪問(wèn)靜態(tài)資源文件,包括引入的JavaScript庫(kù)文件、CSS樣式表以及Thymeleaf的視圖解析模板文件等,采用該框架的表示層能夠減少開發(fā)工作量、提升開發(fā)效率??蛻舳瞬捎脼g覽器及移動(dòng)手機(jī)微信端小程序?yàn)橹鱗8-9],要求能連接互聯(lián)網(wǎng),RSSAMT系統(tǒng)的總體架構(gòu)如圖1所示。
RSSAMT系統(tǒng)采用的技術(shù)包括MyBatis技術(shù)、Bootstrap技術(shù)、Shiro技術(shù)、云服務(wù)器技術(shù)及Redis緩存數(shù)據(jù)庫(kù)技術(shù),分述如下:
(1)持久層框架技術(shù)。RSSAMT系統(tǒng)持久層采用的是MyBatis框架,能夠定制SQL語(yǔ)句以及存儲(chǔ)過(guò)程等,使用XML文件或者簡(jiǎn)單的注解來(lái)映射SQL語(yǔ)句到對(duì)應(yīng)Mapper接口的方法上,實(shí)現(xiàn)動(dòng)態(tài)SQL語(yǔ)句的查詢,MyBatis支持多種數(shù)據(jù)類型的映射,具有簡(jiǎn)單、高效的優(yōu)點(diǎn)。
(2)模板引擎與前端框架技術(shù)。RSSAMT系統(tǒng)界面使用的是Thymeleaf模板引擎,用于JAVA渲染數(shù)據(jù)返回前端頁(yè)面,目前支持HTML、JS、CSS等文件的處理,能夠?qū)崿F(xiàn)前后端分離,Thymeleaf使用的是HTML后綴的文件,并且能根據(jù)Web應(yīng)用啟動(dòng)情況動(dòng)態(tài)地解析與顯示,與普通的JSP頁(yè)面相比,前者的容錯(cuò)率與適配性更好,編程效率更高效。目前常用的前端框架較多,例如Bootstrap、Vue.js及EasyUI等,具有簡(jiǎn)單、易用的優(yōu)點(diǎn)。其中Bootstrap基于HTML、CSS、JS開發(fā),是一款界面簡(jiǎn)潔、直觀、優(yōu)美,封裝性良好的代碼使得前端頁(yè)面的設(shè)計(jì)與數(shù)據(jù)交互更加快捷高效的前端開發(fā)框架,讓W(xué)eb開發(fā)更迅速。
(3)安全框架技術(shù)。RSSAMT系統(tǒng)采用基于角色的訪問(wèn)控制策略,采用Shiro開源安全框架能夠?qū)Φ卿浀挠脩暨M(jìn)行身份驗(yàn)證、對(duì)密碼進(jìn)行自定義加密、對(duì)用戶進(jìn)行授權(quán)以及會(huì)話管理,從而實(shí)現(xiàn)對(duì)前端頁(yè)面以及后臺(tái)數(shù)據(jù)的權(quán)限控制,權(quán)限的控制范圍能達(dá)到方法級(jí)別的粒度,具有較好的實(shí)用性。系統(tǒng)使用HTTPS安全協(xié)議,在申請(qǐng)了SSL證書之后,對(duì)SSL證書進(jìn)行相關(guān)的配置,內(nèi)容包括SSL密鑰的存儲(chǔ)路徑、密碼、存儲(chǔ)類型、監(jiān)聽端口、跳轉(zhuǎn)端口、請(qǐng)求協(xié)議等信息設(shè)置,網(wǎng)站對(duì)數(shù)據(jù)傳輸自動(dòng)進(jìn)行加密,可以有效防止信息的泄露與被竊取,保證了前端頁(yè)面數(shù)據(jù)傳輸?shù)陌踩?。云平臺(tái)還用于記錄用戶SessionID,創(chuàng)建時(shí)間及最后訪問(wèn)時(shí)間,記錄訪問(wèn)地址,用戶請(qǐng)求的總次數(shù)和總時(shí)長(zhǎng),可有效管理用戶登錄狀況。
(4)云服務(wù)器平臺(tái)技術(shù)。云服務(wù)器平臺(tái)是一種計(jì)算服務(wù),彈性可伸縮,將系統(tǒng)架構(gòu)在云服務(wù)器上可以使用其提供的中間件、存儲(chǔ)空間以及數(shù)據(jù)庫(kù)服務(wù),并使用監(jiān)控控制臺(tái)進(jìn)行監(jiān)控運(yùn)維,能夠提升運(yùn)維的效率,降低部署及硬件購(gòu)買的成本。系統(tǒng)部署使用的是阿里云服務(wù)器,操作系統(tǒng)選擇相對(duì)安全的CentOS系統(tǒng),測(cè)試環(huán)境配置參數(shù)為:2核CPU,1 G內(nèi)存,10 Mbps公網(wǎng)帶寬以及80 G高效云盤。管理員登錄阿里云服務(wù)器ECS控制臺(tái),對(duì)云服務(wù)器的安全漏洞、異常登錄、系統(tǒng)事件日志、CUP消耗、網(wǎng)絡(luò)等進(jìn)行監(jiān)控,并對(duì)服務(wù)器進(jìn)行安全組的規(guī)則配置、潛在危險(xiǎn)的安全組檢測(cè),及時(shí)對(duì)突發(fā)狀況進(jìn)行處理。
(5)Redis緩存數(shù)據(jù)庫(kù)技術(shù)。RSSAMT系統(tǒng)采用MySQL關(guān)系型數(shù)據(jù)庫(kù),其中整機(jī)及配件表存放了大量的數(shù)據(jù)記錄,由于系統(tǒng)使用的用戶數(shù)量較多,頻繁訪問(wèn)數(shù)據(jù)庫(kù)將給系統(tǒng)的性能帶來(lái)較大的影響,因此采用Redis緩存框架來(lái)減少對(duì)數(shù)據(jù)庫(kù)表的訪問(wèn),減輕數(shù)據(jù)庫(kù)壓力,同時(shí)緩存用戶的登錄信息,以實(shí)現(xiàn)用戶單點(diǎn)登錄及快速訪問(wèn)配件表的目的。
以RSSAMT系統(tǒng)維修子系統(tǒng)為例,普通用戶可以在維修單管理功能中選擇配件維修申請(qǐng),詳細(xì)操作如下:
(1)選擇登錄后的系統(tǒng)功能“維修單管理”下級(jí)“配件維修申請(qǐng)”功能,進(jìn)入填寫頁(yè)面,如圖3所示。選擇對(duì)應(yīng)的經(jīng)銷商及不良零件信息、需要上傳的圖片等信息,點(diǎn)擊提交。
圖3 維修單填寫界面
(2)通過(guò)“我的維修單”,進(jìn)入維修單查詢頁(yè)面,在條件查詢里選擇對(duì)應(yīng)提交的日期時(shí)間段,可以查詢到剛剛提交的維修單信息。維修單信息也可以在手機(jī)微信端小程序中進(jìn)行填寫與查詢,如圖4所示。
圖4 微信端維修單填寫
(3)普通用戶申請(qǐng)維修后,對(duì)應(yīng)的經(jīng)銷商可以在該模塊的維修單審核菜單查看維修單信息列表,點(diǎn)擊維修單明細(xì)后,便可對(duì)某個(gè)維修單進(jìn)行審核,經(jīng)銷商可以對(duì)普通用戶提交的維修單進(jìn)行部分信息的修改,并且對(duì)維修單進(jìn)行審核,同時(shí)指定對(duì)應(yīng)的服務(wù)商來(lái)為用戶提供維修服務(wù)。
(4)維修單若有錯(cuò)誤,則修改維修單信息,再次審核;否則指定對(duì)應(yīng)的服務(wù)商進(jìn)行維修服務(wù)。
采用JavaEE開發(fā)技術(shù)實(shí)現(xiàn)的步驟如下:
(1)創(chuàng)建數(shù)據(jù)庫(kù)所有的表對(duì)象,其中Matin-TainInfo表、MatinTainDetails表分別為維修單和明細(xì)信息表;
(2)設(shè)計(jì)MatinTainInfo實(shí)體POJO類,該類的屬性mdetails類型為Set,存放維修單的所有明細(xì)對(duì)象;
(3)設(shè)計(jì)IMatinTDao接口及MyBatis持久層框架支持的MatinTMapper.xml映射文件;
(4)設(shè)計(jì)維修服務(wù)接口IMatinTService及實(shí)現(xiàn)類MatinTServiceImpl,后者通過(guò)Spring框架注入IMatinTDao接口,從而獲得IMatinTDao接口的所有方法;
(5)設(shè)計(jì)維修頁(yè)面matinTMgr.html,在該頁(yè)面上使用Thymeleaf模板文件設(shè)計(jì)合適的界面控件;
(6)設(shè)計(jì)維修控制類MatinTContrloler,該類將處理得到的維修單信息傳給對(duì)應(yīng)的matinTMgr.html文件,用來(lái)展現(xiàn)數(shù)據(jù)給用戶;
(7)設(shè)計(jì)配置文件spring-mvc.xml,該文件用來(lái)配置業(yè)務(wù)流轉(zhuǎn)分發(fā)控制;
(8)設(shè)計(jì)配置文件spring-mybatis.xml,該文件用于Spring與MyBatis的集成配置,使DAO層功能能夠有效地與控制層無(wú)縫整合。
RSSAMT系統(tǒng)融合Bootstrap技術(shù)、MySQL技術(shù)、MyBatis持久層技術(shù)、Spring及SpringMVC技術(shù)、現(xiàn)代軟件工程開發(fā)技術(shù)實(shí)現(xiàn)了基于互聯(lián)網(wǎng)的農(nóng)機(jī)具配件維修系統(tǒng)。使用Redis緩存技術(shù)來(lái)減少對(duì)數(shù)據(jù)庫(kù)的直接訪問(wèn),減輕數(shù)據(jù)庫(kù)壓力;針對(duì)農(nóng)機(jī)用戶需求,使用微信Web開發(fā)者工具開發(fā)小程序,通過(guò)掃碼呈現(xiàn)農(nóng)機(jī)具詳細(xì)參數(shù)信息;開發(fā)的RSSAMT具有界面美觀、操作簡(jiǎn)便、高可擴(kuò)展性以及較好性能等特點(diǎn)。該系統(tǒng)所涉及的農(nóng)機(jī)具配件信息類別比較單一,目前只有調(diào)研提供的一至兩種機(jī)型,還需進(jìn)一步豐富。完成的系統(tǒng)還存在功能不夠完善、圖片文件同步上傳效率低、多源數(shù)據(jù)少等缺陷,有待完善。