張現(xiàn) 田繼宏
摘要:針對公司每年舉辦的多種評比活動,響應(yīng)降本增效與規(guī)范化管理的發(fā)展理念,基于公司的企業(yè)微信平臺入口,形成一套適應(yīng)公司各種類型評比活動的數(shù)字化評分系統(tǒng)研發(fā)解決方案?;顒釉u委可通過手機(jī)、平板電腦等移動終端以企業(yè)微信為入口,在工作臺中進(jìn)入相應(yīng)的評比活動應(yīng)用中來完成評分工作,系統(tǒng)針對評委的評分?jǐn)?shù)據(jù)自動計算分?jǐn)?shù),通過報表的形式實(shí)時生成評分結(jié)果,完成名次排序,確保評分工作的有效性、公平性。
關(guān)鍵詞:企業(yè)微信;數(shù)字化;評分系統(tǒng)
中圖分類號: TP311? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)21-0109-02
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
公司每年都會開展多種評比活動,如課題年終檢查、青年技術(shù)交流、團(tuán)支部評比、各專業(yè)年會等活動,其中大部分活動為現(xiàn)場活動,每次都需要制作評分表進(jìn)行現(xiàn)場評分,浪費(fèi)了大量紙張,同時分?jǐn)?shù)統(tǒng)計工作不但耗費(fèi)許多人力資源,而且評分?jǐn)?shù)據(jù)人工校對也容易出現(xiàn)錯誤,影響活動的公平性與有效性。為使評比活動更加符合公司降本增效的發(fā)展理念,需要研發(fā)數(shù)字化評分系統(tǒng),一個能讓評委在各類評比活動中便捷、高效完成評分工作的平臺[1]。
隨著移動互聯(lián)的迅速發(fā)展,智能手機(jī)、平板電腦已成為人們?nèi)粘1貍涞囊苿釉O(shè)備,公司的現(xiàn)場評比活動利用評委手中的移動設(shè)備進(jìn)行評分是較為理想的操作方式,而企業(yè)微信作為公司的日常移動應(yīng)用APP可以便捷地為該評分系統(tǒng)提供平臺入口,部署各類移動評分應(yīng)用,并且使系統(tǒng)能夠輕松地獲取評委信息,免去了登錄操作。
1研究內(nèi)容與思路
此系統(tǒng)的主要研究目標(biāo)是使用戶能夠不受地域限制,在任意場合通過智能手機(jī)等移動終端,基于企業(yè)微信APP進(jìn)入系統(tǒng)應(yīng)用,通過點(diǎn)選、滑動數(shù)字等操作,對各個分?jǐn)?shù)項進(jìn)行分?jǐn)?shù)選擇并提交分?jǐn)?shù),系統(tǒng)根據(jù)相應(yīng)算法計算總分,生成報表展示所有總分排序,最終完成評分工作。設(shè)計思路如下:
1)開發(fā)三套分?jǐn)?shù)項評分模版,針對單一分?jǐn)?shù)項評分;針對多個分?jǐn)?shù)項評分;針對多個分?jǐn)?shù)項中的小分子項評分三種方式,能夠覆蓋公司絕大部分的評比活動類型。
2)因評分環(huán)境的不確定性,存在無法連接公司內(nèi)網(wǎng)WIFI的情況,需要開發(fā)互聯(lián)網(wǎng)應(yīng)用,在公司外網(wǎng)服務(wù)器上部署前端應(yīng)用,用戶使用手機(jī)4G網(wǎng)絡(luò)進(jìn)行訪問。
3)使用微服務(wù)架構(gòu)進(jìn)行服務(wù)端開發(fā),針對不同評比活動開發(fā)各自的業(yè)務(wù)處理服務(wù),通過JSON數(shù)據(jù)格式與前端進(jìn)行數(shù)據(jù)交互,開發(fā)數(shù)據(jù)服務(wù)接口,部署在內(nèi)網(wǎng)服務(wù)器。
4)數(shù)據(jù)庫不做過多的個性化設(shè)計,能夠覆蓋大部分評比活動類型,對評分?jǐn)?shù)據(jù)進(jìn)行統(tǒng)一管理。
5)利用報表工具進(jìn)行報表的個性化定制,針對不同的評比活動分別單獨(dú)定制,自動計算平均分和排列名次,通過HTTP訪問。
2設(shè)計與實(shí)現(xiàn)
系統(tǒng)基于企業(yè)微信進(jìn)行應(yīng)用部署,通過企業(yè)微信服務(wù)接口獲取用戶訪問數(shù)據(jù),前端界面基于H5技術(shù)開發(fā),前端業(yè)務(wù)邏輯使用C#語言開發(fā),服務(wù)端基于JAVA語言開發(fā),使用微服務(wù)框架進(jìn)行服務(wù)的設(shè)計與管理,采用HTTP協(xié)議進(jìn)行通信,數(shù)據(jù)庫使用SQLServer 2008,使用潤乾報表工具進(jìn)行統(tǒng)計報表的設(shè)計與開發(fā)。
2.1企業(yè)微信服務(wù)接口
開發(fā)基于企業(yè)微信的系統(tǒng)登錄模塊,通過調(diào)用https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET接口獲取企業(yè)微信登錄憑證,用于鑒權(quán)調(diào)用者身份,該憑證有7200秒的有效期,利用Memcache緩存技術(shù)將憑證進(jìn)行本地緩存,防止重復(fù)獲取觸發(fā)企業(yè)微信防惡意訪問保護(hù)機(jī)制。
通過調(diào)用https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect接口實(shí)現(xiàn)頁面跳轉(zhuǎn)到評分系統(tǒng)應(yīng)用中,同時獲得code參數(shù)。
通過調(diào)用https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE接口可根據(jù)code參數(shù)獲取用戶的userid,進(jìn)而完成系統(tǒng)登陸操作。
2.2基于JqueryMobile框架的前端UI開發(fā)
JqueryMobile框架是針對觸屏智能手機(jī)與平板電腦的網(wǎng)頁開發(fā)框架,工作于所有主流的智能手機(jī)和平板電腦,構(gòu)建于jQuery以及jQuery UI類庫之上,使用了極少的HTML5、CSS3、JavaScript和AJAX 腳本代碼來完成頁面的布局渲染,解決了不同設(shè)備不同系統(tǒng)的兼容問題,因為它只使用所有移動網(wǎng)絡(luò)瀏覽器的標(biāo)準(zhǔn),操作簡單及靈活[2]。
針對評比活動的具體需求,開發(fā)了評分列表頁面、評分頁面、分?jǐn)?shù)范圍控制、總分計算、小數(shù)點(diǎn)精度控制、表單提交驗證、提交結(jié)果提醒、分?jǐn)?shù)展示等,同時,開發(fā)了三套分?jǐn)?shù)項評分模版,可兼容只需一個總分的情況、有多個分?jǐn)?shù)項計算總分的情況、有多個分?jǐn)?shù)項下的小分子項計算總分的情況,針對不同的評分需求進(jìn)行頁面的快速定制,分?jǐn)?shù)的選取使用了range滑動條,沒有select這種彈出式選擇框,不但使用戶在評分過程中更容易的選擇相應(yīng)的分?jǐn)?shù),而且缺少了彈出式的交互界面使頁面運(yùn)行更加流暢。JqueryMobile框架中精致樣式渲染,以及觸發(fā)事件時的動畫效果,提高了用戶UI的美觀度。
2.3基于Jersey框架的微服務(wù)應(yīng)用
Jersey框架是開源的RESTful框架, 實(shí)現(xiàn)了JAX-RS (JSR 311 & JSR 339) 規(guī)范。它擴(kuò)展了JAX-RS 參考實(shí)現(xiàn),提供了更多的特性和工具,可以進(jìn)一步地簡化 RESTful service和client 開發(fā)。Jersey可以很好地支持HTTP動詞,形成完整的REST風(fēng)格。使用Annotation機(jī)制,所有HTTP相關(guān)的參數(shù)設(shè)置都通過注解實(shí)現(xiàn),在程序設(shè)計時針對的仍然是POJO對象[3]。
在Jersey框架下,開發(fā)資源加載器APIApplication.java和各類服務(wù)接口:
checkUser接口:根據(jù)loginname參數(shù)判斷是登錄用戶否為合法用戶。
getList接口:實(shí)現(xiàn)對評比活動業(yè)務(wù)信息的查詢,展示所有被評分選手列表,計算每個選手的總分;
getOneList接口:實(shí)現(xiàn)對評比活動業(yè)務(wù)信息的查詢(單一分?jǐn)?shù)項),展示所有被評分選手列表。
getData接口:展示某個被評分選手的打分明細(xì)數(shù)據(jù)。
postForm接口:更新/提交評分分?jǐn)?shù)。
將各類服務(wù)寫入資源加載器中進(jìn)行加載,并將微服務(wù)應(yīng)用部署在Apache-Tomcat8.0容器中,外網(wǎng)服務(wù)器的前端應(yīng)用通過HTTP動詞與各類微服務(wù)接口進(jìn)行JSON通信,實(shí)現(xiàn)前后端數(shù)據(jù)交互。Jersey框架的引入使服務(wù)的開發(fā)部署變得十分簡單,開發(fā)人員不用考慮服務(wù)的加載、對象和JSON格式的轉(zhuǎn)換等步驟,只需要關(guān)注業(yè)務(wù)的邏輯處理工作;同時,服務(wù)的管理也變得簡單便捷,對代碼進(jìn)行維護(hù)無須重啟服務(wù)應(yīng)用,即可完成邏輯替換。
2.4 潤乾報表開發(fā)
潤乾報表是國內(nèi)的一個企業(yè)級報表工具,提供了高效的報表設(shè)計方案、強(qiáng)大的報表展現(xiàn)能力、靈活的部署機(jī)制,擅長應(yīng)對各種復(fù)雜報表,通過報表設(shè)計器與SQL數(shù)據(jù)源進(jìn)行綁定,能夠快速生成Excel、PDF等多種文件類型的報表,為公司提供高性能、高效率的報表系統(tǒng)解決方案。
針對公司的各類評比活動,分別開發(fā)各自的分?jǐn)?shù)統(tǒng)計報表,在報表設(shè)計器中編寫SQL語句,對評委和選手進(jìn)行分組,獲取每個選手對應(yīng)所有評委的各自分?jǐn)?shù),利用報表中的函數(shù)在每行末尾計算出平均分,根據(jù)業(yè)務(wù)需求設(shè)置是否去掉最高分和最低分,同時標(biāo)注最高分和最低分,保留小數(shù),并自動根據(jù)平均分進(jìn)行升序或降序排名,使評分工作人員通過瀏覽器即可直觀地獲得評分結(jié)果。同時,報表提供多種文件類型的報表生成功能,評分工作人員可生成Excel等類型的文件對結(jié)果進(jìn)行進(jìn)一步篩選和處理。
3總結(jié)
本文完成了基于企業(yè)微信的數(shù)字化評分系統(tǒng)研發(fā)與應(yīng)用,并廣泛應(yīng)用于公司的各類評比活動中,從應(yīng)用效果來看,該系統(tǒng)節(jié)約了活動主辦部門工作人員的大量工作,活動開始前,不用再準(zhǔn)備大量打分表;活動進(jìn)行中,也省去了收取打分表、分?jǐn)?shù)校對、總分計算、排列名次等一系列工作,節(jié)約了人力資源,提高了組織效率,節(jié)省了紙張成本,獎勵發(fā)放更公平、準(zhǔn)確,活動也更加具有科技含量,實(shí)現(xiàn)了公司評比活動的數(shù)字化、規(guī)范化管理。
參考文獻(xiàn):
[1] 劉冶,李娟,白蘭,等.基于Android平臺的評委打分系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].福建電腦,2017,33(4):47-48.
[2] Hong Ma. Tech Services on the Web: jQuery Mobile jquerymobile.com[J]. Technical Services Quarterly,2013,30(2).
[3] liushilang.(分享)幾種支持REST的Java框架[EB/OL].https://liushilang.iteye.com/blog/1872782,2013-05-21.
【通聯(lián)編輯:唐一東】