馬宇
摘 要:生產(chǎn)系統(tǒng)實用化考核涉及多項指標,傳統(tǒng)整改方式難以取得較好成效。為解決問題,該文結(jié)合相關(guān)技術(shù),從數(shù)據(jù)抓取、數(shù)據(jù)處理、數(shù)據(jù)發(fā)布3方面創(chuàng)新性地提供了一套系統(tǒng)實用化整改解決方案,準確定位用戶需求,成功開發(fā)并應(yīng)用生產(chǎn)系統(tǒng)實用化整改輔助工具,切實解決用戶迫切的業(yè)務(wù)需求。
關(guān)鍵詞:生產(chǎn)系統(tǒng) 實用化 數(shù)據(jù)抓取 數(shù)據(jù)處理 數(shù)據(jù)發(fā)布
中圖分類號:TM72 文獻標識碼:A 文章編號:1674-098X(2016)06(b)-0003-03
1 前言
在電力行業(yè)中,生產(chǎn)業(yè)務(wù)繁雜,涉及業(yè)務(wù)部門較多。借助信息技術(shù)手段,生產(chǎn)系統(tǒng)加強對生產(chǎn)部門相關(guān)崗位及基層生產(chǎn)班組的規(guī)范管理,實現(xiàn)信息共享。
由于生產(chǎn)系統(tǒng)上每張工作票、操作票的起止時間不一、種類較多,可能導致相關(guān)人員因遺漏而未能及時將其歸檔。而且,由于相關(guān)數(shù)據(jù)格式各異,員工無法根據(jù)工作票、操作票距離到期日期的剩余天數(shù)進行排序以作優(yōu)先處理。一方面,這會影響相關(guān)工作的規(guī)范化開展;另一方面,也會拉低生產(chǎn)系統(tǒng)上的工作票、操作票歸檔及時率之類的考核指標。
基于此,該文從數(shù)據(jù)抓取、數(shù)據(jù)處理、數(shù)據(jù)發(fā)布3方面闡述創(chuàng)新性的系統(tǒng)實用化整改解決方案。
1.1 數(shù)據(jù)抓取
設(shè)置特定的時間點,由計算機在生產(chǎn)系統(tǒng)上抓取所需數(shù)據(jù),比如工作票、操作票數(shù)據(jù)等,節(jié)省獲取數(shù)據(jù)的時間和工作。
1.2 數(shù)據(jù)處理
根據(jù)用戶需求,計算機將定時處理抓取得到的數(shù)據(jù),存儲于后臺數(shù)據(jù)庫,做好數(shù)據(jù)備份,特別地,允許用戶在無需修改程序代碼的情況下,自行添加待處理數(shù)據(jù)文件的種類,并說明其中所包含的字段、屬性、位置等信息。
1.3 數(shù)據(jù)發(fā)布
通過腳本文件,將后臺數(shù)據(jù)庫的數(shù)據(jù)匯總統(tǒng)計,實時展現(xiàn)在網(wǎng)頁上供用戶瀏覽,指導其及時做好歸檔工作。
2 相關(guān)技術(shù)
該文采用3方面技術(shù)原理,具體如下。
2.1 POST請求
POST是向服務(wù)器傳送數(shù)據(jù),把請求數(shù)據(jù)放置在HTTP請求包的包體中。不同于GET請求,執(zhí)行POST操作時,瀏覽器不會緩存數(shù)據(jù),對URL限制、表單數(shù)據(jù)限制均無要求。
2.2 JSON
JSON(JavaScript Object Notiation)是一種輕量級的數(shù)據(jù)交換格式,易于閱讀、編寫、機器解析和生成。它是基于JavaScript的一個子集,采用獨立于語言的文本格式,并兼顧類似C語言家族的習慣。其建構(gòu)于兩種結(jié)構(gòu),分別是“名稱/值”對集合與值的有序列表。現(xiàn)代計算機語言的支持使得一種數(shù)據(jù)格式在同樣基于上述結(jié)構(gòu)的編程語言之間交換成為可能[1]。
2.3 C#與.NET
作為一種基于現(xiàn)代面向?qū)ο笤O(shè)計方法的語言,C#的體系結(jié)構(gòu)和方法論反映了.NET基礎(chǔ)方法論,其特定語言功能依賴于.NET基類。.NET基類內(nèi)容豐富,直觀且易用,可以完成此前需要經(jīng)Windows API實現(xiàn)的大部分工作,極大地提升開發(fā)人員的效率[2]。
ASP.NET是目前主流網(wǎng)絡(luò)開發(fā)技術(shù)之一,具有高效的運行性能、簡易且靈活、可管理性強、生產(chǎn)效率高,使網(wǎng)絡(luò)程序開發(fā)傾向于智能化,運行更為流暢[3]。
該文兩個技術(shù)關(guān)鍵點如下。
(1)準確定位用戶的需求。
項目旨在提高歸檔及時率,希望提供給用戶足夠的統(tǒng)計分析信息以供參考,這會是腳本設(shè)計的著力點,如何準確地捕獲用戶的需求亟待考慮。
(2)待處理數(shù)據(jù)格式各異。
把權(quán)力更多地交給用戶決定,這就要求程序本身需要考慮的東西足夠周全,如何把握好格式各異的數(shù)據(jù)間的共性,這是一個需要思考的問題。
在技術(shù)創(chuàng)新方面,該文真正實現(xiàn)自動化處理過程,目前尚未有能夠準確有效協(xié)助或替代人工處理相關(guān)數(shù)據(jù)的工具,開發(fā)適用于生產(chǎn)部門實際需求的整改工具,在提升工作效率、精簡時間成本等方面是一次有益的嘗試。
3 工具的開發(fā)及應(yīng)用
對于生產(chǎn)系統(tǒng)實用化指標之一的操作票歸檔及時率,業(yè)務(wù)人員需要檢查“操作票生成時間+5個工作日”在該月的操作票是否在該月結(jié)束前完成歸檔。以2016年5月為例,需要檢查開票日期在2016年4月25日至2016年5月25日的操作票是否已及時歸檔,這在生產(chǎn)系統(tǒng)上可以查詢得到。在點擊查詢的同時,可使用Opera瀏覽器的“開發(fā)者工具”查看POST請求,如圖1所示。其中Request Headers包含所需的Cookie,將其保存在本地。接下來的工作將全部交由計算機實現(xiàn)。
該文使用JAVA語言開發(fā)POST請求發(fā)送工具,如圖2所示。通過Java.net.URL來獲取資源,指定POST請求中用到的Request URL。之后打開和URL之間的連接,返回一個URLConnection對象,表示到URL所引用遠程對象的連接??紤]到每次POST請求屬性穩(wěn)定,于是在程序中對其設(shè)置,包括Request Headers包含的accept、connection、user-agent,并讀取此前保存在本地的文本設(shè)置cookie。調(diào)用上述URLConnection對象的getOutputStream方法,通過java.io.PrintWriter來獲取其對應(yīng)的輸出流。這里需要調(diào)用PrintWriter對象的print方法發(fā)送請求參數(shù),程序根據(jù)當前系統(tǒng)時間自行設(shè)置開票日期起止時間、每頁顯示條目數(shù)及當前頁數(shù),通過定義java.io.BufferedReader輸入流來讀取URL的響應(yīng),以此獲得所有滿足考核規(guī)則的數(shù)據(jù)。以圖2為例,程序獲得110條記錄,并將其自行導入Oracle數(shù)據(jù)庫。經(jīng)開發(fā)調(diào)試后,程序?qū)⒁钥蛇\行的JAR文件格式導出,為定時執(zhí)行做準備。
在用戶沒有進行任何操作的情況下,cookie將會在30 min后自行失效。為了保證cookie持續(xù)有效,使用Windows系統(tǒng)任務(wù)計劃程序功能執(zhí)行JAR文件,模擬用戶操作,每隔一段時間發(fā)送POST請求。為此新建任務(wù),此前將JAR文件保存在D盤,在任務(wù)中編輯操作,設(shè)置程序或腳本為“java”,設(shè)置添加參數(shù)為“-jar D:\sc.jar”;編輯觸發(fā)器,設(shè)置“制定計劃時”開始任務(wù),設(shè)置開始時間為當天的0點,每隔1 d發(fā)生1次,重復任務(wù)間隔5 min,持續(xù)時間1 d。如圖3所示,如此即可保證每天每隔5 min模擬1次用戶操作。
在Oracle數(shù)據(jù)庫持續(xù)得到更新的同時,業(yè)務(wù)人員可以通過數(shù)據(jù)展示平臺查看所需內(nèi)容,包括在規(guī)定時間內(nèi)尚未歸檔的操作票。網(wǎng)站首頁提供所有實用化指標的圖表,顯示當前各指標在各部門的分布情況,包括柱狀圖和餅圖,這可通過DevExpress控件群下的一個Web圖表控件WebChartControl實現(xiàn)。在網(wǎng)站開發(fā)過程中,提供圖表控件服務(wù)類ChartServices.cs以控制生成圖表,包括繪制圖形、設(shè)置圖表標題、為X軸添加標題、為Y軸添加標題等方法;提供數(shù)據(jù)服務(wù)類DataServices.cs以提供多維數(shù)據(jù),特別是在繪制柱狀圖時可以在一張圖顯示各部門多維指標現(xiàn)狀,讓用戶可以在盡可能少的圖表上獲得盡可能多的信息,從Oracle數(shù)據(jù)庫讀取以Datatable數(shù)據(jù)集合的形式返回。
在操作票歸檔及時率模塊,允許業(yè)務(wù)人員根據(jù)自身需要設(shè)定條件篩選并展示、匯總分析數(shù)據(jù),通過Web控件AspxGridView實現(xiàn),如圖4所示。用戶在“操作開始時間”設(shè)定2016年5月23日,沒有任何數(shù)據(jù)顯示,對業(yè)務(wù)人員而言這意味著當天開始的操作票都已經(jīng)歸檔。需要說明的是,“及時歸檔剩余工作日”、“部門”、“參考部門”、“日期”等字段在生產(chǎn)系統(tǒng)中是不存在的,經(jīng)計算得到,方便業(yè)務(wù)人員有針對性地篩選。其中,“及時歸檔剩余工作日”表示距離歸檔時限剩余時間,負數(shù)需引起業(yè)務(wù)人員注意;“部門”和“參考部門”為用戶業(yè)務(wù)上需要而提供的信息,方便將問題數(shù)據(jù)及時分派到指定部門;“日期”為記錄導入Oracle數(shù)據(jù)庫的時間。另外,數(shù)據(jù)展示平臺允許用戶導出當前AspxGridView上顯示的所有記錄,選擇在單個頁面或者分頁顯示數(shù)據(jù),給用戶更多選擇空間。
除了操作票歸檔及時率,數(shù)據(jù)展示平臺還提供工作票辦結(jié)率、管理計劃及時完成率、維護檢修計劃完成率、缺陷驗收及時率、任務(wù)觀察記錄辦結(jié)率、缺陷錄入及時率等指標問題數(shù)據(jù)展示頁面,切實解決用戶迫切的業(yè)務(wù)需求。
4 結(jié)語
生產(chǎn)系統(tǒng)實用化指標可以直觀反映生產(chǎn)相關(guān)工作開展是否到位,成效能否達到預(yù)期目標。對生產(chǎn)線業(yè)務(wù)人員而言,實用化指標即是工作質(zhì)量的標尺。如何將數(shù)據(jù)以更為豐富的形式展示給用戶、方便用戶高效開展實用化整改工作,應(yīng)是信息人員需要考慮并為之付諸實踐的重要任務(wù)。當前信息技術(shù)發(fā)展突飛猛進,應(yīng)對實際問題的方法可能不計其數(shù)。無論如何,以用戶為中心、切實解決用戶痛點應(yīng)是當下互聯(lián)網(wǎng)思維應(yīng)有之義。
參考文獻
[1] 閆曉婷,宋佳.AJAX中數(shù)據(jù)傳輸?shù)男录夹g(shù)——JSON[J].福建電腦,2007(10):62.
[2] (美)內(nèi)格爾(Nagel C),著.C#高級編程[M].李銘,譯.清華大學出版社,2014.
[3] 張躍廷,顧彥玲.ASP.NET從入門到精通[M].清華大學出版社,2012.