張垚 姜曼

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