王蕓琦 蔡建平



摘 ?要: 近年來,電子簽到已成為一種常見的考勤方式。基于位置的電子簽到能夠通過獲取用戶簽到時所處位置來判斷簽到是否成功,由于其反饋的信息更加豐富、實用、有效而備受推崇。設計開發了基于位置的簽到系統,系統采用Java EE處理簽到情況,前端包括微信小程序端和網頁端。用戶在發起簽到前可以導入名單,在發起簽到時可以限制簽到完成的時間、地點、人員,簽到完成后可以導出簽到記錄。
關鍵詞: 微信小程序; 簽到; 考勤管理; HTML5
中圖分類號:TP311.1 ? ? ? ? ?文獻標志碼:A ? ? 文章編號:1006-8228(2019)11-67-03
Abstract: In recent years, electronic sign-in has become a common form of attendance checking. The location-based electronic sign-in can determine whether the sign-in is successful by obtaining the location where the user checked in, which is highly praised for being more informative, practical, and effective. A location-based sign-in system is designed and developed, the system uses Java EE to handle sign-in transaction, and the front-end includes WeChat Mini Program and webpage. The user can import the list before sign-in. When the sign-in is initiated, the time, place, and personnel of the sign-in can be restricted. After the sign-in is completed, the sign-in record can be exported.
Key words: WeChat Mini Program; sign-in; attendance management; HTML5
0 引言
簽到是一項十分常見的活動,人們一直在研究如何提高簽到的發起效率與管理效率。許多場合(如學校、醫院、公司等)仍使用手工填寫模式進行考勤[1],現如今,各類電子技術發展迅速,電子簽到躍然成為了一種更省時省力的形式。近十年來,市場上各類手機APP層出不窮,給人們的生活、學習和工作帶來了極大的便利[2]。APP可以調用手機的GPS定位系統,對于用戶地理位置的判斷將更加精確[3],但也會有一定的弊端,為了解決APP運營過程中出現的長尾效應[4],可以使用微信小程序來開發應用。微信小程序有著即開即用、不占內存等優點,它提供有豐富的接口,包括位置信息等,可以為用戶帶來良好的使用體驗。
本系統致力于提高日常活動中人員考勤的效率,系統使用微信小程序提供的接口來獲取用戶的當前位置,可發起限定位置的簽到,而需要簽到的用戶使用金數據提供的表單來完成簽到。隨后簽到發起者可以在微信小程序或是網頁中查看簽到完成的情況。網頁端可以導入需要簽到人員的名單,也可以導出簽到結果。
1 系統總體設計
用戶可在微信小程序端限定簽到完成的有效時間段。通過調用地圖組件,還可限定簽到完成的有效位置。也可限定簽到需要完成的用戶群體。
簽到發布后,用戶可在微信小程序端或是網頁端查看簽到完成的情況。用戶可在網頁端上傳用戶名單,或是下載某個簽到的完成情況。
1.1 系統框架
本系統的小程序端與網頁端的結構圖如圖1所示。
本系統的微信小程序端主要模塊有:注冊登錄模塊、發起簽到模塊、管理簽到模塊、個人中心模塊;網頁端主要模塊有:注冊登錄模塊、管理發起模塊、管理參與模塊、管理名單模塊、個人中心模塊。
1.2 功能模塊設計
注冊登錄模塊:主要實現用戶注冊賬號、登錄賬號功能,系統使用正則表達式來判斷用戶輸入的手機號是否合法。小程序端流程圖如圖2所示。
發起簽到模塊:在發起新的簽到時,用戶可以限定時間、地點與人員,界面如圖3所示。
微信小程序調用map插件和一系列獲取位置的方法來確認地點。
當用戶輸入的數據無誤時,小程序會將數據傳遞給服務器,服務器使用一定的方法處理并保存時間信息,并返回該簽到的唯一標識符。
簽到設置成功后,程序跳轉至分享簽到界面,并提示來自服務器的口令,用戶可通過截圖或復制鏈接的形式來分享簽到,界面如圖4所示。
管理簽到模塊:界面展示簽到名稱、簽到備注、簽到發起的時間,并具有下拉刷新數據的功能。
在展示的簽到列表中,點擊一項,可以具體查看參與簽到的用戶的結果信息、微信信息、設備信息等。
在網頁端,服務器使用HttpSession來分辨用戶,若用戶長時間無操作,則需重新登錄。在登錄信息有效的情況下,用戶可查看或刪除自己發起的某項簽到,也可以查看簽到詳情與簽到結果。用戶可以將簽到的完成結果導出為Excel文件到本地進行保存。
管理參與模塊:進入個人中心后,用戶可查看自己歷史參與的簽到。
用戶并不能看到同樣參與此次簽到的其他用戶的信息。
管理名單模塊:用戶在網頁端可以導入名單,用以在發起簽到時選擇需要進行簽到的人員列表,界面如圖5所示。
系統通過Form表單將用戶選擇的文件發至后端,后端確認登錄信息有效后,將Excel先存至臨時文件,為避免用戶上傳相同名稱的文件而導致錯誤,系統會對文件進行重命名操作,再將此文件存至服務器中。之后系統將調取JXL工具類庫中的方法,對服務器上的Excel文件進行解析,并依次把數據條目存入數據庫中。
用戶還可以查看或刪除自己導入的名單,可以查看名單中所有人員的姓名與手機號信息。
個人中心模塊:用戶在微信小程序端與網頁端的個人中心中皆可修改密碼。若系統檢查用戶輸入的原密碼正確,且兩次輸入的新密碼相同并符合規范,則判斷修改成功。
在網頁端中,若用戶點擊退出登錄,系統會跳轉到登錄界面。
微信小程序的個人中心頁頂端會顯示當前登錄用戶的手機號。
在微信小程序端與網頁端,皆有本系統的關于與幫助頁面,用于展示系統的相關信息。
2 測試數據的圖形化展示
2.1 發起簽到展示
發起簽到時,用戶設置具體時間、地點與人員限制的界面如圖6所示。
2.2 查看結果展示
用戶查看自己發起的簽到界面如圖7所示,列表展示簽到的名稱、備注、創建時間。
單擊某一項簽到,可以具體查看此項簽到的口令、時間地點人員限制、簽到結果情況,如圖8所示。
單擊某一用戶時,根據用戶簽到成功與否,會顯示簽到的詳細結果,若用戶簽到失敗,會顯示失敗的原因,如圖9所示。
2.3 導出結果展示
在網頁端中,用戶導出簽到結果時,Excel中會顯示姓名、手機號、結果、用戶簽到時間、簽到地點、簽到姓名信息,如圖10所示。
3 實際位置與簽到位置的偏差
3.1 發起簽到偏差
在發起簽到時,若選擇限制位置,微信小程序調用map插件獲取用戶當前位置。此時,若用戶身處室內或其他信號不佳的位置,系統獲取到的當前位置會有一定的偏差。
此時可以在屏幕上拖動地圖,將目標位置拖到屏幕中央,并單擊“選擇地圖中心位置”,再選擇允許簽到的距離范圍,便可實現限制有效簽到的位置在用戶期望的位置范圍內。
3.2 完成簽到偏差
在完成簽到時,用戶直接在金數據的表單中獲取當前位置,自動填寫位置字段。
金數據提供的獲取地理位置功能效果較好,在室內或其他信號不佳的情況下,也能較為準確地獲取用戶當前所在位置。
4 結束語
本系統通過簽到活動的電子化,不僅減少了紙張筆墨與人力資源的浪費,更使得簽到活動變得快捷與方便管理,也便于數據的歸檔以及后續的回檔。“小程序+”已經可以連接一切,微信小程序作為一款圍繞微信打造的生態工具,逐漸為更多的行業與企業所青睞[5]。基于位置的簽到微信小程序將能為人們的生活與工作帶來極大的便利。而如何提高簽到時對于位置的判定將是需要不斷研究與改進的關鍵點。
參考文獻(References):
[1] 于莉莉.信息系統在某醫院考勤管理中的應用[J].醫藥前沿,2018,8(21):354.
[2] 朱雷.基于Android技術的考勤APP設計與實現[J].遼寧師專學報(自然科學版).2018,20(2):70-72,79.
[3] 王江雨,劉愛華.基于Android的定點簽到獎勵系統分析與實現[J].現代計算機,2017,(33):65-69. DOI:10.3969/j.issn.1007-1423.2017.33.016.
[4] 邢榕珊,匡芳君.微信小程序設計[J].計算機時代,2018,(8):9-12.DOI:10.16644/j.cnki.cn33-1094/tp.2018.08. 003.
[5] 賀瑜.微信小程序推廣展望[J].電腦知識與技術,2018.14(27):279-280