李平富+高麗金
摘要:加油站安全貼業(yè)務(wù)管理系統(tǒng)是一套運(yùn)行于中石化云南公司非油業(yè)務(wù)網(wǎng)絡(luò)平臺(tái)上的,為滿足“油品安全貼”項(xiàng)目運(yùn)作而定制開(kāi)發(fā)的業(yè)務(wù)應(yīng)用軟件系統(tǒng);主要包括:庫(kù)存管理、銷(xiāo)售管理、統(tǒng)計(jì)分析、員工人員管理等功能模塊;設(shè)計(jì)采用Java Web技術(shù),整合Spring MVC、MyBatis框架,使用apache-tomcat-6.0.41作為服務(wù)器,數(shù)據(jù)庫(kù)采用Oracle 11.2g版本,數(shù)據(jù)庫(kù)開(kāi)發(fā)采用PL/SQL Developer,實(shí)現(xiàn)了一個(gè)基于B/S架構(gòu)的加油站安全貼業(yè)務(wù)管理系統(tǒng)。
關(guān)鍵詞:加油站;油品安全貼;業(yè)務(wù)管理;管理系統(tǒng);數(shù)據(jù)庫(kù)
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)29-0048-03
Abstract: Gas station safety stickers business management system is a run on the company's non-gas business Sinopec Yunnan network platform, to meet the "gas security stickers" project operation and custom-developed business application software systems; including inventory management, sales management , statistical analysis, staff management modules and so on; The design uses Java Web technology, integration of Spring MVC, MyBatis framework, using apache-tomcat-6.0.41 as a server, database using Oracle 11.2g version, database development using PL/SQL Developer, to make a gas station security-based B/S architecture, business management system.
Key words: gas station; gas security stickers; business management; management system; database
為滿足中國(guó)石化云南石油分公司在開(kāi)展油品“安全貼”業(yè)務(wù)運(yùn)營(yíng)過(guò)程的業(yè)務(wù)需要,專(zhuān)門(mén)定制開(kāi)發(fā)的一套計(jì)算機(jī)網(wǎng)絡(luò)業(yè)務(wù)處理應(yīng)用軟件;用于對(duì)油品“安全貼”業(yè)務(wù)執(zhí)行全過(guò)程的電子化處理和業(yè)務(wù)運(yùn)營(yíng)支撐。本文主要介紹了基于Spring MVC和MyBatis的油品安全貼業(yè)務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。包括“油品安全貼”業(yè)務(wù)管理系統(tǒng)的總體目標(biāo)描述、功能需求分析描述、業(yè)務(wù)功能及數(shù)據(jù)處理邏輯詳細(xì)描述、建設(shè)實(shí)施條件及其他非功能性需求描述。
QR二維碼是由日本豐田子公司 Denso Wave于1994年發(fā)明并開(kāi)始使用的一種矩陣二維碼符號(hào)[1]。QR二維碼不僅信息容量大、可靠性高、成本低,還可表示漢字及圖像等多種文字信息、其保密防偽性強(qiáng)而且使用非常方便,QR碼呈正方形,圖案由黑白兩色組成[1]。油品安全貼?是一種采用加密二維碼標(biāo)識(shí)及抗污易碎防偽技術(shù)制作的一次性使用標(biāo)簽,用于每次機(jī)動(dòng)車(chē)加油后對(duì)油箱蓋進(jìn)行貼封,為客戶提供對(duì)中石化油品質(zhì)量的保證及發(fā)動(dòng)機(jī)因油品質(zhì)量發(fā)生故障后保險(xiǎn)理賠的依據(jù)。
在本系統(tǒng)的各系統(tǒng)模塊、業(yè)務(wù)功能的描述中,“門(mén)店”指中石化下屬的加油站內(nèi)部門(mén)店,“產(chǎn)品”特指油品安全貼標(biāo)簽,作為本項(xiàng)目在業(yè)務(wù)運(yùn)營(yíng)中向加油客戶推介使用的產(chǎn)品。
1 需求分析
1.1 系統(tǒng)總體目標(biāo)
該系統(tǒng)主要包括:系統(tǒng)基礎(chǔ)管理、二維碼加密生成、庫(kù)存管理、銷(xiāo)售管理、員工管理、統(tǒng)計(jì)分析等功能模塊。系統(tǒng)基礎(chǔ)管理包括系統(tǒng)登錄/注銷(xiāo)和修改密碼;庫(kù)存管理包括對(duì)產(chǎn)品的二維碼加密生成入庫(kù)和產(chǎn)品庫(kù)存查詢;銷(xiāo)售管理包括產(chǎn)品領(lǐng)用(退回)登記的增刪改查、產(chǎn)品使用登記的增刪改查和產(chǎn)品報(bào)廢登記的增刪改查等操作;員工管理包括員工信息的增刪改查、員工在職狀態(tài)管理、員工是否允許登錄系統(tǒng)授權(quán)等操作。統(tǒng)計(jì)分析包括產(chǎn)品使用日流水統(tǒng)計(jì)、產(chǎn)品業(yè)務(wù)日?qǐng)?bào)統(tǒng)計(jì)和員工業(yè)務(wù)月報(bào)統(tǒng)計(jì)。系統(tǒng)的改造及完善需要根據(jù)實(shí)際情況進(jìn)行調(diào)整;其最終目的是通過(guò)此系統(tǒng)來(lái)實(shí)現(xiàn)加油站安全貼業(yè)務(wù)的各個(gè)環(huán)節(jié)的管理。
1.2 功能性需求分析
1.2.1 功能模塊清單
系統(tǒng)功能模塊包括系統(tǒng)基礎(chǔ)管理、庫(kù)存管理、銷(xiāo)售管理、業(yè)務(wù)統(tǒng)計(jì)報(bào)表,具體功能模塊清單如表1所示。
1.2.2 系統(tǒng)基礎(chǔ)管理
系統(tǒng)基礎(chǔ)管理模塊是提供系統(tǒng)通用功能。
1) 系統(tǒng)登錄/注銷(xiāo)
對(duì)于所有本系統(tǒng)的功能操作,都必須經(jīng)過(guò)操作員的系統(tǒng)登錄驗(yàn)證。“登錄/注銷(xiāo)”功能對(duì)所有操作人有效。
2) 修改登錄密碼
修改登錄密碼功能需要在已登錄系統(tǒng)的狀態(tài)下進(jìn)行操作,僅對(duì)當(dāng)前登錄操作員有效;“修改登錄密碼”功能應(yīng)在系統(tǒng)主頁(yè)面的上方標(biāo)題欄顯示,在已登錄期間的任何時(shí)候均可調(diào)用。
3) 員工信息管理
所有操作員(員工)均歸屬于系統(tǒng)管理員維護(hù),系統(tǒng)管理員需要對(duì)操作員的基礎(chǔ)信息進(jìn)行維護(hù),包括:工號(hào)、姓名、職務(wù)、登錄密碼、允許登錄狀態(tài)、在職狀態(tài)、備注等信息;其中“工號(hào)”作為操作員的記錄標(biāo)識(shí)并作為系統(tǒng)登錄的賬號(hào)使用,故此必須保證唯一。
4) 庫(kù)存管理
庫(kù)存管理主要是對(duì)產(chǎn)品二維碼進(jìn)行預(yù)加密生成處理,同時(shí)對(duì)產(chǎn)品進(jìn)行入庫(kù)業(yè)務(wù)操作;產(chǎn)品二維碼處理是針對(duì)該系統(tǒng)中的油品“安全貼”標(biāo)簽中所印刷的二維碼,每個(gè)標(biāo)簽產(chǎn)品中的二維碼具備唯一標(biāo)識(shí)性,二維碼中的編碼內(nèi)容數(shù)據(jù)需經(jīng)過(guò)加密處理以具備信息保密和標(biāo)簽防偽的功能。在標(biāo)簽產(chǎn)品的制作生產(chǎn)前,需經(jīng)由系統(tǒng)通過(guò)加密程序?qū)γ颗蔚臉?biāo)簽二維碼進(jìn)行批量的加密生成,生成的二維碼圖形數(shù)據(jù)通過(guò)導(dǎo)出文件的方式,發(fā)送給制作單位進(jìn)行實(shí)際的標(biāo)簽產(chǎn)品生產(chǎn)制作。endprint
①二維碼加密生成
在本系統(tǒng)中,“安全貼”產(chǎn)品標(biāo)簽采用QR二維碼;通過(guò)對(duì)系統(tǒng)自動(dòng)生成的唯一標(biāo)識(shí)號(hào)碼進(jìn)行信息疊加,疊加的信息可以是自定義驗(yàn)證標(biāo)識(shí)和其他數(shù)據(jù),再通過(guò)對(duì)疊加后的信息利用對(duì)稱加密算法進(jìn)行數(shù)據(jù)置換處理,生成新的編碼表象數(shù)據(jù),再對(duì)加密后的表象數(shù)據(jù)進(jìn)行QR二維碼的轉(zhuǎn)換,實(shí)現(xiàn)對(duì)產(chǎn)品標(biāo)簽二維碼的加密處理。
②二維碼解密識(shí)別
二維碼的識(shí)別是通過(guò)二維碼掃描儀完成,掃描識(shí)別得到的是加密后的表象數(shù)據(jù);此時(shí)需要先對(duì)表象數(shù)據(jù)通過(guò)對(duì)稱解密算法進(jìn)行解密識(shí)別,恢復(fù)原始信息從而提取其中的唯一標(biāo)識(shí)號(hào)碼;以此唯一標(biāo)識(shí)號(hào)碼作為業(yè)務(wù)處理的產(chǎn)品標(biāo)識(shí)。
③產(chǎn)品庫(kù)存查詢
加油站負(fù)責(zé)人對(duì)當(dāng)前加油站的產(chǎn)品庫(kù)存數(shù)量進(jìn)行查詢,庫(kù)存數(shù)量由系統(tǒng)根據(jù)產(chǎn)品使用過(guò)程中的狀態(tài)進(jìn)行統(tǒng)計(jì);便于加油站負(fù)責(zé)人核對(duì)產(chǎn)品實(shí)物庫(kù)存數(shù)與系統(tǒng)記錄是否相符,及時(shí)發(fā)現(xiàn)和處理問(wèn)題。
5) 銷(xiāo)售管理
①員工領(lǐng)用登記
由加油站產(chǎn)品管理(倉(cāng)管)員進(jìn)行操作,對(duì)加油站實(shí)際發(fā)放產(chǎn)品到員工個(gè)人的業(yè)務(wù)進(jìn)行登記;產(chǎn)品發(fā)放業(yè)務(wù)的實(shí)物包括:(安全貼)產(chǎn)品發(fā)放、贈(zèng)品發(fā)放。
登記的信息項(xiàng)包括:發(fā)放領(lǐng)用記錄號(hào)、領(lǐng)用員工、數(shù)量、執(zhí)行狀態(tài)、倉(cāng)管員、發(fā)放時(shí)間、登記時(shí)間、執(zhí)行時(shí)間等;其中執(zhí)行狀態(tài)分為:新建、已執(zhí)行;已執(zhí)行狀態(tài)下記錄不允許修改。
②產(chǎn)品使用登記
當(dāng)加油站業(yè)務(wù)員完成一次產(chǎn)品銷(xiāo)售,需要對(duì)售出產(chǎn)品的二維碼進(jìn)行登記激活生效,同時(shí)需要采集客戶車(chē)輛的相關(guān)信息進(jìn)行錄入登記,作為一次完整的業(yè)務(wù)數(shù)據(jù)記錄;錄入的數(shù)據(jù)項(xiàng)包括:產(chǎn)品標(biāo)識(shí)號(hào)碼、業(yè)務(wù)員、銷(xiāo)售時(shí)間、銷(xiāo)售金額、車(chē)輛號(hào)牌、油品標(biāo)號(hào)、手機(jī)號(hào)碼、錄入操作員、錄入時(shí)間;如發(fā)生錄入錯(cuò)誤需要修改時(shí),登錄系統(tǒng)對(duì)錯(cuò)誤記錄進(jìn)行編輯修改;系統(tǒng)需記錄修改時(shí)間,修改人。
③產(chǎn)品報(bào)廢處理登記
由加油站產(chǎn)品管理(倉(cāng)管)員進(jìn)行操作,對(duì)加油站在日常產(chǎn)品產(chǎn)生損壞報(bào)廢的情況進(jìn)行登記;產(chǎn)品報(bào)廢登記的信息項(xiàng)包括:記錄號(hào)、員工、報(bào)廢單位、報(bào)廢原因、登記時(shí)間、確認(rèn)狀態(tài)、確認(rèn)時(shí)間等。
2 系統(tǒng)總體設(shè)計(jì)
業(yè)務(wù)系統(tǒng)的界面設(shè)計(jì)采用目前流行的jQuery easyUI框架進(jìn)行設(shè)計(jì)。jQuery easyUI是一組基于jQuery的一個(gè)前臺(tái)UI界面的插件,它能幫助Web開(kāi)發(fā)者更輕松的打造出功能豐富并且美觀的界面。功能相對(duì)沒(méi)extjs強(qiáng)大,但頁(yè)面也是相當(dāng)好看的。一些功能插件也足夠開(kāi)發(fā)者使用,相對(duì)于extjs更輕量。另外,開(kāi)發(fā)者不需要編寫(xiě)復(fù)雜的JavaScript代碼。
Spring MVC框架是由一個(gè)MVC框架,通過(guò)實(shí)現(xiàn)Model-View-Controller模式來(lái)很好地將數(shù)據(jù)、業(yè)務(wù)與展現(xiàn)進(jìn)行分離。Model的職責(zé)是負(fù)責(zé)業(yè)務(wù)邏輯。包含兩層:業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)處理邏輯,比如實(shí)體類(lèi)、DAO、Service都屬于模型層;View視圖的職責(zé)是負(fù)責(zé)顯示界面和用戶交互(收集用戶信息),屬于視圖的組件是不包含業(yè)務(wù)邏輯和控制邏輯的jsp;Controller控制器是模型層M和視圖層V之間的橋梁,用于控制流程[2]。從這樣一個(gè)角度來(lái)說(shuō),Spring MVC和Struts、Struts2非常類(lèi)似。Spring MVC的設(shè)計(jì)是圍繞DispatcherServlet展開(kāi)的,DispatcherServlet負(fù)責(zé)將請(qǐng)求派發(fā)到特定的HandlerMapping。
MyBatis 是支持普通 SQL查詢,存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持久層框架。使用簡(jiǎn)單的 XML或注解用于配置和原始映射,將接口和普通的 Java對(duì)象映射成數(shù)據(jù)庫(kù)中的記錄。
本次設(shè)計(jì)最終采用Java Web技術(shù),整合Spring MVC、MyBatis框架實(shí)現(xiàn)加油站安全貼業(yè)務(wù)管理系統(tǒng)的具體流程。
3 功能實(shí)現(xiàn)
軟件系統(tǒng)的功能與實(shí)際業(yè)務(wù)相匹配,當(dāng)日常安全貼相關(guān)業(yè)務(wù)發(fā)生時(shí)需要在系統(tǒng)中進(jìn)行相應(yīng)的業(yè)務(wù)處理操作;
1) 系統(tǒng)登錄:在系統(tǒng)中進(jìn)行任何的業(yè)務(wù)操作均需要首先登錄系統(tǒng);登錄頁(yè)面如圖1所示。
輸入登錄賬號(hào)及登錄密碼后,點(diǎn)擊“登錄”進(jìn)入系統(tǒng);當(dāng)賬號(hào)或密碼錯(cuò)誤將不允許進(jìn)入并提示錯(cuò)誤。
2) 系統(tǒng)主頁(yè)面:用戶成功登錄系統(tǒng)后將看到系統(tǒng)主功能頁(yè)面如下圖2所示。
進(jìn)入主界面后可以進(jìn)行個(gè)人密碼修改,注銷(xiāo)以及所有的業(yè)務(wù)操作。
3.1 員工管理模塊
維護(hù)員工工號(hào)、姓名、職務(wù)、登錄密碼、允許登錄狀態(tài)、在職狀態(tài)、備注等信息;其中“工號(hào)”作為員工操作的記錄標(biāo)識(shí)并作為系統(tǒng)登錄的賬號(hào)使用,故此必須保證唯一??蓪?duì)員工信息進(jìn)行修改、刪除等操作。
3.2 庫(kù)存管理模塊
3.2.1 產(chǎn)品生產(chǎn)入庫(kù)
可以對(duì)訂單的新建、修改、生產(chǎn)、刪除和查詢等操作,功能頁(yè)面如圖3所示。
3.2.2 產(chǎn)品庫(kù)存查詢
可查看加油站倉(cāng)庫(kù)的產(chǎn)品庫(kù)存詳細(xì)情況,包括每一個(gè)包裝的在庫(kù)狀態(tài)及下級(jí)包裝的數(shù)量,功能頁(yè)面如圖4所示。
3.3 銷(xiāo)售管理
3.3.1 員工領(lǐng)用登記
加油員個(gè)人需要向加油站站長(zhǎng)進(jìn)行安全貼產(chǎn)品的領(lǐng)用,在當(dāng)班過(guò)程隨身攜帶并向客戶進(jìn)行推薦使用;每名加油員實(shí)際發(fā)生的安全貼產(chǎn)品領(lǐng)用均需要在系統(tǒng)中進(jìn)行登記;被使用的安全貼需要交回存根進(jìn)行使用登記;未使用完的安全貼將記錄在個(gè)人領(lǐng)用賬上;對(duì)于個(gè)人不再使用的安全貼,可以進(jìn)行“領(lǐng)用退回登記”以清結(jié)賬目。
3.3.2 產(chǎn)品使用登記
當(dāng)加油員完成本班次的工作,需要將已使用的安全貼存根交回給記賬員,由記賬員進(jìn)行批量的登記使用操作處理,如圖5所示。
3.4 統(tǒng)計(jì)報(bào)表
系統(tǒng)實(shí)現(xiàn)了加油站日流水、業(yè)務(wù)日?qǐng)?bào)、員工月報(bào)等統(tǒng)計(jì)功能,如圖6所示。endprint
4 總結(jié)與展望
4.1 總結(jié)
系統(tǒng)在設(shè)計(jì)方面還存在許多的不足之處需要改進(jìn),程序也有一定量的Bug,比如瀏覽器兼容性(掃描槍在中文輸入法狀態(tài)下不能自動(dòng)回車(chē)),這些都還需要修改與完善。
4.2 展望
本系統(tǒng)考慮在今后業(yè)務(wù)發(fā)展過(guò)程中與外部系統(tǒng)進(jìn)行對(duì)接,增加交換業(yè)務(wù)數(shù)據(jù)及提供客戶信息、業(yè)務(wù)記錄信息查詢接口;包括但不限于:
1) 與中石化微信企業(yè)服務(wù)號(hào)進(jìn)行對(duì)接;
2) 與中石化海信商業(yè)系統(tǒng)進(jìn)行對(duì)接;
3) 與中石化ERP系統(tǒng)的財(cái)務(wù)模塊進(jìn)行對(duì)接。
參考文獻(xiàn):
[1] 蘋(píng)果網(wǎng).ApplePay在美國(guó)遇勁敵:QR二維碼支付[DB/OL].http://www.app111.com/doc/100092248_1.html.
[2] wawlian.Spring MVC簡(jiǎn)介[EB/OL].http://www.cnblogs.com/wawlian/archive/2012/11/17/2775435.html.
[3] 胡玫艷,黃花,何龍.電子商務(wù)概論[M].北京:清華大學(xué)出版社,2012,10-12.
[4] 黃縉華.MySQL其實(shí)很簡(jiǎn)單[M].北京:清華大學(xué)出版社,2011,22-30.
[5] Kenneth A,Lambert,Martin Osborne.Java程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社, 2005,15-23.
[6] 沈澤剛,秦玉平.Java Web編程技術(shù)[M].北京:清華大學(xué)出版社,2010,44-46.
[7] 朱印宏,林小志.精通CSS網(wǎng)頁(yè)布局[M].中國(guó)電力出版社,2009,50-53.
[8] 耿祥義. Jsp基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2004,11-16.
[9] CNNIC.中國(guó)B2C電子商務(wù)報(bào)告[J].計(jì)算機(jī)周刊,2001,12(32):12-16.
[10] 李鐘尉,陳丹丹.Java開(kāi)發(fā)實(shí)例1200例[M].北京:清華大學(xué)出版社,2011,7-8.
[11] 萬(wàn)錦坤.中國(guó)大學(xué)學(xué)報(bào)論文文摘[D].北京:中國(guó)大百科全書(shū)出版社,1996.
[12] Halale,Mahesh.Management Information System[M].IND:Global Media,2010,37-58.endprint