漢中市氣象局 樊潔馨 李 天
在目前的氣象裝備保障業(yè)務(wù)中,裝備保障的及時(shí)性與準(zhǔn)確性非常關(guān)鍵,但縣氣象局還存故障設(shè)備申報(bào)不及時(shí),人員填寫(xiě)故障報(bào)告單內(nèi)容不規(guī)范等情況,為有效的解決這一問(wèn)題,同時(shí)提高市縣裝備保障能力,目前運(yùn)用J2EE編程技術(shù),并結(jié)合現(xiàn)階段業(yè)務(wù)需求,研發(fā)出“漢中市氣象設(shè)備維修管理信息系統(tǒng)”網(wǎng)站,通過(guò)網(wǎng)絡(luò)方式上傳以及查看數(shù)據(jù),本文介紹系統(tǒng)的研發(fā)思路及相關(guān)技術(shù),供其他研發(fā)人員進(jìn)行參考。
開(kāi)發(fā)語(yǔ)言為:J2EE(Java 2 Platform,Enterprise Edition),它是一個(gè)為大企業(yè)主機(jī)級(jí)的計(jì)算類型而設(shè)計(jì)的Java平臺(tái),它有可伸縮性、靈活性、易維護(hù)性、穩(wěn)定的可用性、支持異構(gòu)環(huán)境、開(kāi)發(fā)的高效性等優(yōu)點(diǎn);開(kāi)發(fā)工具為:Eclipse,它是一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。MyEclipse可以支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC數(shù)據(jù)庫(kù)鏈接工具等多項(xiàng)功能。
服務(wù)器端軟件環(huán)境為JDK1.8.0.、Tomcat8.0;數(shù)據(jù)庫(kù)為:SQLServer2008;服務(wù)器端硬件環(huán)境:CPU:InterCorei5及以上、內(nèi)存4G以上;客戶端軟件環(huán)境:IE8.0以上;客戶端硬件環(huán)境:CPU:InterCore1以上、內(nèi)存1G以上;支持環(huán)境:windowsXP/Windows 7/Windows 8/Windows 10。
系統(tǒng)主要包括兩大部分,一部分為管理員使用平臺(tái),另一部分為普通用戶使用平臺(tái)。
管理員部分:管理員登錄、注冊(cè)、管理員用戶信息修改,管理員用戶刪除、查看并處理待處理信息,查看已處理信息、刪除已處理信息;
普通用戶部分:用戶登錄,用戶注冊(cè),填寫(xiě)故障報(bào)修信息,查看已處理信息,修改待處理信息,刪除待處理信息。
本系統(tǒng)使用SQLServer2008,數(shù)據(jù)庫(kù)名為EqpManage,共兩張表,一張表為ManageInfo,為裝備信息表,主要存儲(chǔ)所有的裝備信息內(nèi)容,,一張為Users,為用戶信息表,主要存儲(chǔ)所有的用戶信息。
普通用戶登錄后,可直接選擇錄入信息,在declare.jsp頁(yè)面進(jìn)行信息填報(bào),信息填報(bào)后將數(shù)據(jù)提交至DeclareServlet.java進(jìn)行處理,并調(diào)用EquipBO.java中的方法將所填報(bào)的數(shù)據(jù)插入數(shù)據(jù)庫(kù)中,同時(shí)頁(yè)面返回至主頁(yè)面。
Declare.jsp頁(yè)面相關(guān)代碼:
其中Declare.jsp頁(yè)面使用了文本編輯器插件,可方便用戶更直觀的錄入數(shù)據(jù),需在web工程中導(dǎo)入使用插件所必須的配置文件等,同時(shí)需在html代碼部分中內(nèi)頁(yè)面添加如下代碼:
在html部分中使用該插件,需寫(xiě)入代碼將其調(diào)用,具體為:
在declare.jsp中將填寫(xiě)的信息通過(guò)form表單傳遞給DeclareServlet.java,其中設(shè)置一個(gè)參數(shù)名為”flag”,其值為“decalre”,具體代碼為:
DeclareServlet.java相關(guān)代碼:
在DeclareServlet.java中,當(dāng)判定flag的值為“declare”時(shí),執(zhí)行doDeclare(request,response)函數(shù),在該函數(shù)中調(diào)用EquipBO.java中的類將數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù),操作完成后頁(yè)面返回至user.jsp主頁(yè)面,具體實(shí)現(xiàn)如下:
EquipBO eqo=new EquipBO();
if(eqo.addEquip(reporttime,uptime,district,contact,telphone,equipname,equipfactory,brokentime,detail,faxsituation,suggestion,pic)){//調(diào)用addEquip()函數(shù);
request.getRequestDispatcher("user.jsp").forward(request,response);} //返回至主頁(yè)面。
EquipBO.java相關(guān)代碼:
DeclareServlet.java調(diào)用EquipBO.java中的addEquip()函數(shù),用來(lái)寫(xiě)入數(shù)據(jù),在addEquip()中執(zhí)行數(shù)據(jù)庫(kù)腳本如下,其中將Unhandle值賦為1,則代表該條信息未被處理。
insert into manageInfo (Unhandle,ReportTime,UpTime,District,Contact,Telphone,EquipName,EquipFactory,BorkenTime,Detail,FaxSituation,Suggestion,pic)values(1,'"+reporttime+"','"+uptime+"','"+district+"','"+contact+"','"+telphone+"','"+equipname+"'",'"+equipfactory+"','"+borkentime+"','"+detail+"','"+faxsituation+"','"+suggestion+"','"+pic+"')
當(dāng)用戶登錄時(shí),從數(shù)據(jù)庫(kù)查詢出用戶所在縣區(qū)局,根據(jù)所在縣區(qū)局查詢所有未處理的數(shù)據(jù),可方便用戶查看本單位填報(bào)信息。在查看未處理數(shù)據(jù)時(shí),在unhandle.jsp頁(yè)面分頁(yè)顯示該縣區(qū)局所有未處理信息列表,當(dāng)需要修改未處理信息的內(nèi)容時(shí),可在列表后點(diǎn)擊修改,進(jìn)入到updatedeclare.jsp頁(yè)面進(jìn)行修改并提交至DeclareServlet.java進(jìn)行處理,同時(shí)頁(yè)面列出曾填寫(xiě)的數(shù)據(jù),方便用戶在原有信息上修改。當(dāng)用戶不再需要該條未處理信息時(shí),可點(diǎn)擊列表后的刪除。
unhandle.jsp頁(yè)面相關(guān)代碼:
unhandle.jsp頁(yè)面使用圖表插件,使得所有信息可以分頁(yè)顯示,同時(shí)列表可按照其中值的大小進(jìn)行排序,不僅方便直觀,同時(shí)簡(jiǎn)化了數(shù)據(jù)庫(kù)查詢語(yǔ)句,只需將符合該條件的所有信息一次性查詢出后,使用插件自動(dòng)分頁(yè),在引入該插件時(shí),web工程中需要導(dǎo)入相關(guān)的配置文件,并在html中中添加如下代碼:
在html中部分添加
同時(shí)在表格中注意一定要使用來(lái)表明表格的頭部和內(nèi)容部分,則該插件可以成功被引用,否則無(wú)效。
其中在列表中顯示數(shù)據(jù)部分信息,方便用戶查找查看,如想要重新修改為處理信息或者刪除未處理信息,可點(diǎn)擊列表后鏈接,則將該條信息的manageid值傳遞至Declare-Servlet.java,并進(jìn)行相關(guān)處理,其中表格鏈接部分代碼為:
DeclareServlet.java相關(guān)代碼:
當(dāng)參數(shù)傳遞至DeclareServlet.java頁(yè)面時(shí),對(duì)其中的flag值進(jìn)行判定,若flag值為updatedetail,則執(zhí)行doUpdateDetail(request,response);進(jìn)行數(shù)據(jù)更新,若flag值為userdetaildel,則執(zhí)行douserdetailDel(request,response);刪除該條數(shù)據(jù)。
在douserdetailDel(request,response)函數(shù)中調(diào)用EquipBO中的delDetail(id)方法來(lái)刪除該條信息,并返回至主界面,代碼如下
request.getRequestDispatcher("user.jsp").forward(request,response);
在doUpdateDetail(request,response)函數(shù)中,調(diào)用EquipBO中的查詢出該條數(shù)據(jù)的全部信息,并返回至修改頁(yè)面即updatedeclare.jsp,代碼如下:
EquipBO eqo=new EquipBO();EquipBean eqb=eqo.getDetail(id);request.setAttribute("eqb",eqb);
request.getRequestDispatcher("updatedecl are.jsp").forward(request,response);
在返回至updatedeclare.jsp頁(yè)面后,進(jìn)行數(shù)據(jù)的修改,并在此上傳至DeclareServlet,執(zhí)行doUpdeok(request,response)進(jìn)行數(shù)據(jù)的更新,其中doUpdeok(request,response)調(diào)用EquipBO中的updateDetail()方法,進(jìn)行數(shù)據(jù)更新,代碼如下:
EquipBO eqo=new EquipBO();
if(eqo.updateDetail(id,reporttime,uptime,district,contact,telphone,equipname,equipfactory,brokentime,detail,faxsituation,suggestion)){
request.getRequestDispatcher("user.jsp").forward(request,response);}
EquipBO.java相關(guān)代碼:
在EquipBO.jsp中執(zhí)行delDetail(int id)方法,刪除該條數(shù)據(jù),其中delDetail(int id)執(zhí)行數(shù)據(jù)庫(kù)腳本如下:
delete from ManageInfo where ManageID='"+id+"'
在EquipBO.jsp中執(zhí)行g(shù)etDetail(int manageid)方法,查詢出該條信息所有值,其中g(shù)etDetail(int manageid)執(zhí)行數(shù)據(jù)庫(kù)腳本如下:
select * from manageInfo where ManageID='"+manageid+"'
在EquipBO.jsp中執(zhí)行g(shù)etDetail(int manageid)方法,更新該條信息,其中g(shù)etDetail(int manageid)執(zhí)行數(shù)據(jù)庫(kù)腳本如下:
update manageInfo set ReportTime='"+reporttime+"',UpTime='"+uptime+"'," + "District='"+district+"',Contact='"+contact+"',Telphone='"+telphone+"',EquipName='"+equipname+"',EquipFact ory='"+equipfactory+"',BorkenTime='"+borkentime+"',Detail='"+detail+"',F(xiàn)axSituation='"+faxs ituation+"',Suggestion='"+suggestion+"' where ManageID='"+manageid+"'
當(dāng)管理員登錄主頁(yè)面后,可查看待處理信息列表,當(dāng)要回復(fù)待處理信息時(shí),點(diǎn)擊列表后“查看”,進(jìn)行信息處理,當(dāng)提交數(shù)據(jù)后,將數(shù)據(jù)發(fā)送至DeclareServlet,進(jìn)行該條信息的數(shù)據(jù)更新,同時(shí)將數(shù)據(jù)庫(kù)中該條信息中“unhandle”值賦為“0”,表示該條信息已被處理,其中DeclareServlet.jsp調(diào)用EquipBO.java中的updateEquip()方法,并執(zhí)行數(shù)據(jù)庫(kù)腳本如下,進(jìn)行數(shù)據(jù)更新:
update manageInfo set Signer='"+signer+"',PorcessTime='"+processtime+"',
"CompleteTime='"+completetime+"',Result='"+result+"',UnHandle=0
where ManageID='"+manageid+"'
在信息處理中還包括用戶的注冊(cè),用戶信息修改,刪除用戶,管理員查看已處理信息,管理員刪除已處理信息,用戶查看已處理信息等功能,其中方法與上述類似,故不再贅述。
經(jīng)測(cè)試,該系統(tǒng)運(yùn)行正常,通過(guò)J2EE編程方法與業(yè)務(wù)需求相結(jié)合開(kāi)發(fā)安全穩(wěn)定運(yùn)行的漢中市氣象局裝備維修管理系統(tǒng),不僅可方便縣局業(yè)務(wù)人員以及相關(guān)技術(shù)人員報(bào)修故障探測(cè)設(shè)備,并統(tǒng)計(jì)出易出現(xiàn)故障設(shè)備,為裝備儲(chǔ)備以及保障提供相關(guān)數(shù)據(jù)支撐,這既是在氣象科研方面的一項(xiàng)積極探索和有益嘗試,也為今后的業(yè)務(wù)服務(wù)工作奠定了良好的基礎(chǔ)。系統(tǒng)目前還處于完善中,不足之處請(qǐng)批評(píng)指正。