• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于安卓及云服務(wù)平臺(tái)的考勤管理系統(tǒng)

      2021-12-08 10:33:38馬開聰
      關(guān)鍵詞:手機(jī)號(hào)考勤姓名

      鐘 娟,馬開聰

      (安徽建筑大學(xué) 電子與信息工程學(xué)院,安徽 合肥 230601)

      “無紙化辦公”策略開始逐漸推廣,許多事業(yè)單位、民營企業(yè)和行政機(jī)關(guān)等開始實(shí)施“無紙化辦公”策略。企業(yè)使用計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)對(duì)數(shù)據(jù)信息進(jìn)行采集、傳輸和存儲(chǔ)[1-2],減少了紙張的使用,并且隨著信息技術(shù)的快速發(fā)展,數(shù)據(jù)的統(tǒng)計(jì)和展示越來越方便和專業(yè)化。企業(yè)管理方面也逐漸開始實(shí)現(xiàn)全信息化管理,企業(yè)考勤作為企業(yè)工作實(shí)踐中的重要組成部分,在企業(yè)工作規(guī)劃中占據(jù)著重要地位[3],通過計(jì)算機(jī)管理企業(yè)的考勤相關(guān)信息可以讓企業(yè)的管理效率最大化。當(dāng)前的考勤系統(tǒng)種類繁多,大致可以分為:移動(dòng)考勤、指紋考勤、打卡考勤、人工統(tǒng)計(jì)?,F(xiàn)存的考勤系統(tǒng)只是簡單羅列數(shù)據(jù),并沒有經(jīng)過邏輯分析,展示不直觀??记跀?shù)據(jù)也無法與辦公系統(tǒng)進(jìn)行綁定,同時(shí)缺乏對(duì)出差及請(qǐng)假數(shù)據(jù)的引入,產(chǎn)生問題數(shù)據(jù)[4]。優(yōu)秀的考勤系統(tǒng)可以為企業(yè)節(jié)省成本,提高考勤效率,達(dá)到企業(yè)與員工雙贏。

      基于Android平臺(tái)的智能移動(dòng)終端的快速發(fā)展,憑借其先進(jìn)的硬件和軟件架構(gòu),能夠支持多種無線通信方式[5],鑒于此,本文采用RFID技術(shù)創(chuàng)建一款基于安卓及云平臺(tái)的考勤管理系統(tǒng),主要功能是對(duì)員工考勤和考勤情況分析和統(tǒng)計(jì),便于管理人員去統(tǒng)計(jì)考勤信息,減少人力的耗費(fèi)。系統(tǒng)通過信息技術(shù)手段,結(jié)合科學(xué)的管理理論、設(shè)計(jì)、開發(fā)和搭建一個(gè)員工考勤管理系統(tǒng),通過設(shè)計(jì)合理的考勤管理制度,讓考勤管理變得科學(xué)合理,從而提高企業(yè)管理的效率,讓企業(yè)的管理不再是難題。

      1 系統(tǒng)功能簡介及可行性分析

      1.1 系統(tǒng)功能簡介

      系統(tǒng)功能有用戶考勤、添加員工信息、修改員工信息、請(qǐng)假、出差、查看員工出勤、查看具體出勤和設(shè)置管理員。安卓設(shè)備連接讀卡器,在規(guī)定的時(shí)間段內(nèi)可以刷卡實(shí)現(xiàn)用戶考勤功能。輸入管理員手機(jī)號(hào)和密碼可以進(jìn)入管理界面,將安卓設(shè)備連接讀卡器后可以添加員工的信息,包括員工的姓名、手機(jī)號(hào)、性別等。點(diǎn)擊進(jìn)入修改員工信息界面,會(huì)顯示所有已經(jīng)注冊(cè)的員工姓名,點(diǎn)擊某位員工姓名可以修改這位員工的信息。點(diǎn)擊進(jìn)入請(qǐng)假界面,輸入手機(jī)號(hào)并選擇請(qǐng)假起始日期,可以實(shí)現(xiàn)請(qǐng)假功能。點(diǎn)擊進(jìn)入出差界面,輸入手機(jī)號(hào)并選擇出差起始日期,可以實(shí)現(xiàn)出差功能。進(jìn)入員工出勤界面可以顯示所有員工姓名,通過搜索框可以搜索員工姓名,點(diǎn)擊姓名進(jìn)入員工個(gè)人界面,顯示該員工本月詳細(xì)考勤記錄(遲到次數(shù)、出差次數(shù)、請(qǐng)假次數(shù))。點(diǎn)擊進(jìn)入具體出勤界面,通過選擇部門、年份、月份可以查看不同部門、年份、月份的員工具體考勤情況,考勤情況可以用Excel表格的形式導(dǎo)出。點(diǎn)擊進(jìn)入設(shè)置管理員界面可以設(shè)置管理員,該功能只有超級(jí)用戶有權(quán)限進(jìn)入,對(duì)應(yīng)的系統(tǒng)功能如圖1所示。

      圖1 系統(tǒng)功能圖

      1.2 系統(tǒng)軟硬件可行性分析

      1.2.1 系統(tǒng)軟件可行性分析

      系統(tǒng)軟件采用Java語言開發(fā),借助于Android手機(jī)、 Android Studio開發(fā)工具和Bmob云服務(wù)器實(shí)現(xiàn)了該考勤系統(tǒng)。其中,Java語言具有跨平臺(tái)、面向?qū)ο笮?、穩(wěn)定和便捷的特點(diǎn)。Android是一種基于Linux內(nèi)核的自由及開放源代碼的操作系統(tǒng),它開發(fā)App方便快捷、簡單。Android Studio是谷歌推出的Android 集成開發(fā)工具,通過使用Android Studio,移動(dòng)開發(fā)者只需要在Java中調(diào)用動(dòng)態(tài)鏈接庫中的函數(shù)就可以訪問硬件資源[6-9]。開發(fā)軟件的平臺(tái)僅需要普通配置的電腦即可,調(diào)試可以在安卓機(jī)上實(shí)現(xiàn),不需要過多的硬件設(shè)備。手機(jī)端通過Wifi與Bmob相連接,我們知道Wifi是一種短距離無線技術(shù)[10]。Bmob云數(shù)據(jù)庫將移動(dòng)開發(fā)者從搭建服務(wù)器中解脫出來,只需要調(diào)用接口函數(shù),就可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的存儲(chǔ)和請(qǐng)求操作,使得開發(fā)者將更多精力花在移動(dòng)應(yīng)用程序的開發(fā)上。在Bmob官網(wǎng)上注冊(cè)賬號(hào),可以創(chuàng)建應(yīng)用云數(shù)據(jù)庫,根據(jù)創(chuàng)建的數(shù)據(jù)庫的Key來和應(yīng)用程序組相匹配,從而實(shí)現(xiàn)應(yīng)用程序與數(shù)據(jù)庫的綁定,在控制臺(tái)對(duì)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行查看和修改,十分方便。Bmob云數(shù)據(jù)庫的系統(tǒng)功能穩(wěn)定,可以保證應(yīng)用程序的穩(wěn)定運(yùn)行。

      Bmob云數(shù)據(jù)庫為開發(fā)者提供了免費(fèi)的云數(shù)據(jù)庫資源,通過實(shí)現(xiàn)接口可以享受云數(shù)據(jù)庫服務(wù),具有穩(wěn)定,反應(yīng)迅速等特點(diǎn)。Bmob云數(shù)據(jù)庫提供了數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢、數(shù)據(jù)更新、數(shù)據(jù)刪除等服務(wù),可以很好的滿足考勤系統(tǒng)的要求,降低開發(fā)時(shí)間和成本。

      1.2.2 系統(tǒng)硬件可行性分析

      射頻識(shí)別是一種基于電磁的技術(shù),使用無線標(biāo)簽傳輸和接收數(shù)據(jù)[11]。標(biāo)簽通常附加在物品上,以自動(dòng)識(shí)別和跟蹤它們。許多研究者報(bào)告了在教育部門使用AIDC技術(shù)的情況。例如:R?dulescu和Popescu[12]探索了使用條形碼技術(shù)來跟蹤和管理圖書館的圖書。Rios-Aguilar等[13]提出了利用基于NFC的移動(dòng)商務(wù)信息系統(tǒng)實(shí)現(xiàn)班級(jí)考勤登記。Eydgahi等[14]探索了利用RFID來管理本科高年級(jí)設(shè)計(jì)項(xiàng)目的出勤。

      本系統(tǒng)硬件讀卡器采用射頻技術(shù)RFID,型號(hào)為YW-605的高頻13.56 M射頻卡讀寫器,支持讀寫13.56 M各類射頻IC卡,讀寫距離小于10 cm,供電為+5VDC,尺寸大小為110 mm*70 mm,可以通過USB連接Android設(shè)備。該讀卡器可以與Android或Web開發(fā)環(huán)境較好的結(jié)合,實(shí)現(xiàn)打卡考勤的功能。

      該RFID讀卡器讀寫穩(wěn)定,保證了考勤系統(tǒng)的穩(wěn)定性。并且該系統(tǒng)開發(fā)成本低,并考慮到用戶基數(shù)的龐大,具有一定的經(jīng)濟(jì)可行性,對(duì)應(yīng)的讀卡器如圖2所示。

      2 系統(tǒng)平臺(tái)設(shè)計(jì)

      2.1 員工考勤模塊設(shè)計(jì)

      員工考勤模塊設(shè)計(jì)的是實(shí)現(xiàn)考勤功能,該模塊涉及到兩個(gè)數(shù)據(jù)庫表分別是員工表和考勤表。員工表的屬性有:員工ID、姓名、手機(jī)號(hào)、性別、年齡、所屬部門??记诒淼膶傩杂校簡T工ID、年、月、日、上午簽到、上午簽退、下午簽到、下午簽退。

      員工使用RFID卡通過RFID讀卡器來打卡,考勤都會(huì)先查詢員工表看其是否已注冊(cè),若沒注冊(cè)則不會(huì)繼續(xù)進(jìn)行打卡操作,并且提示“此卡未注冊(cè)”。若員工已經(jīng)注冊(cè),則系統(tǒng)會(huì)獲取當(dāng)前時(shí)間與打卡時(shí)間段進(jìn)行比較,若不在此時(shí)間段,則會(huì)提示“現(xiàn)在不是打卡時(shí)間”;若在考勤時(shí)間段,會(huì)先判斷當(dāng)前日期是否在考勤表中已經(jīng)創(chuàng)建,若已經(jīng)創(chuàng)建則根據(jù)當(dāng)前時(shí)間段來修改當(dāng)前時(shí)間段的考勤記錄。若當(dāng)前日期的考勤記錄未創(chuàng)建,則會(huì)在考勤表中創(chuàng)建一條當(dāng)前日期的考勤記錄,具體的考勤流程圖如圖3所示。

      圖3 考勤模塊流程圖

      2.2 管理員登錄模塊設(shè)計(jì)

      該模塊的功能是驗(yàn)證管理員身份,涉及到的數(shù)據(jù)庫表是管理員表。管理員表的屬性有姓名、手機(jī)號(hào)、密碼、是否是超級(jí)用戶等。管理員輸入手機(jī)號(hào)和密碼就可以進(jìn)入管理界面,點(diǎn)擊下方的記住密碼可以保存手機(jī)號(hào)和密碼,下次登錄直接點(diǎn)擊登錄即可,不需要再輸入手機(jī)號(hào)和密碼。點(diǎn)擊登錄后,系統(tǒng)會(huì)從管理員表查詢是否存在此員工信息,如果存在則允許進(jìn)入管理界面。

      2.3 添加和修改員工信息模塊設(shè)計(jì)

      該模塊的功能是添加員工信息和修改員工信息,涉及到數(shù)據(jù)庫表是員工表。添加員工信息模塊需要連接RFID讀卡器,通過刷卡來獲取卡號(hào),并將此卡號(hào)與該員工綁定,輸入員工相關(guān)信息,點(diǎn)擊注冊(cè),系統(tǒng)將輸入的信息封裝到員工類,向Bmob數(shù)據(jù)庫提交封裝后的員工類,從而在數(shù)據(jù)庫中添加員工的信息,即可實(shí)現(xiàn)該員工的信息錄入。修改員工信息模塊要使用RecyclerView來展示所有的員工姓名,點(diǎn)擊其中一位員工會(huì)通過Intent將員工信息傳遞給員工詳細(xì)界面。會(huì)進(jìn)入員工詳細(xì)信息界面,系統(tǒng)接受并解析上一步Intent傳遞的信息并展示到界面上。管理員可以編輯員工的相關(guān)信息,點(diǎn)擊修改后,系統(tǒng)會(huì)將數(shù)據(jù)庫的信息修改。修改信息后使用廣播將修改后的信息傳遞到展示所有員工姓名的Activity。在員工詳細(xì)界面內(nèi)點(diǎn)擊刪除按鈕,可以將數(shù)據(jù)庫中員工表的當(dāng)前員工記錄刪除,若該員工是管理員,也會(huì)一并刪除。刪除操作結(jié)束后,使用廣播來關(guān)閉員工姓名展示界面,并重新啟動(dòng)該Activity。

      2.4 請(qǐng)假和出差模塊設(shè)計(jì)

      請(qǐng)假模塊功能是向請(qǐng)假表中添加一條請(qǐng)假信息,涉及到的數(shù)據(jù)庫表是請(qǐng)假表,該表的屬性有:員工ID、請(qǐng)假起始日期、請(qǐng)假結(jié)束日期和請(qǐng)假類型。手機(jī)號(hào)需要管理員進(jìn)行輸入,請(qǐng)假起始日期和請(qǐng)假結(jié)束日期的選擇,調(diào)用的Android原生的日歷控件,選擇日期后轉(zhuǎn)為String類型的字符串;請(qǐng)假類型同樣也是調(diào)用Android原生的選擇控件,監(jiān)聽用戶的選擇并轉(zhuǎn)為String類型的字符串。點(diǎn)擊錄入后,先根據(jù)手機(jī)號(hào)查找出員工ID,再向數(shù)據(jù)庫的請(qǐng)假表中添加一條記錄,實(shí)現(xiàn)請(qǐng)假功能。

      出差模塊的功能是向出差表中添加一條出差信息,涉及到的數(shù)據(jù)庫表是出差表,該表的屬性有:員工ID、出差起始日期、出差結(jié)束日期。通過輸入手機(jī)號(hào),選擇出差起始日期和出差結(jié)束日期,可以生成一條出差記錄,點(diǎn)擊錄入按鈕,根據(jù)手機(jī)號(hào)查找員工ID,向數(shù)據(jù)庫出差表中添加一條出差信息。

      2.5 員工出勤模塊設(shè)計(jì)

      員工出勤模塊的功能是查看某位員工本月的具體出勤情況,涉及到的數(shù)據(jù)庫表有員工表、出勤表、出差表和請(qǐng)假表。進(jìn)入該模塊會(huì)有一個(gè)搜索框,該搜索框采用Android原生的SearchView組件。搜索框下方采用ListView來展示員工表的所有員工姓名,點(diǎn)擊員工姓名,可以進(jìn)入員工的本月詳細(xì)考勤情況展示界面。在輸入框中輸入的信息,會(huì)與員工姓名相匹配,包含輸入信息的員工姓名會(huì)被篩選出來,便于查找。

      員工本月詳細(xì)考勤情況展示界面有當(dāng)月考勤信息(遲到次數(shù)、請(qǐng)假次數(shù)和出差次數(shù))。本月考勤記錄包括了請(qǐng)假和出差記錄,按照日期排序進(jìn)行展示,采用RecyclerView布局。姓名展示界面會(huì)通過廣播將該員工姓名和員工ID傳給本界面,員工姓名用來展示,員工ID用來向考勤表,出差表和請(qǐng)假表請(qǐng)求數(shù)據(jù)。本月遲到次數(shù)需要向考勤表查詢本月所有考勤記錄,再對(duì)請(qǐng)求到的數(shù)據(jù)進(jìn)行遍歷,若四次考勤有一次為空則視為缺勤。本月請(qǐng)假次數(shù)要向請(qǐng)假表請(qǐng)求數(shù)據(jù),本月出差次數(shù)要向出差表請(qǐng)求數(shù)據(jù)。

      2.6 具體出勤情況模塊設(shè)計(jì)

      具體出勤情況模塊設(shè)計(jì)功能是根據(jù)用戶選擇的年份,月份和部門來導(dǎo)出詳細(xì)的員工考勤記錄,涉及到的數(shù)據(jù)庫表有考勤表,請(qǐng)假表和出差表。首先根據(jù)用戶選擇的信息去向考勤表請(qǐng)求符合條件的數(shù)據(jù),再根據(jù)請(qǐng)求到的數(shù)據(jù)中的員工ID去查找請(qǐng)假表和出差表的記錄。使用String數(shù)組和ArrayList集合對(duì)請(qǐng)求到的數(shù)據(jù)進(jìn)行保存,并將數(shù)據(jù)導(dǎo)出到Excel表格中,Excel表包含編號(hào)、姓名、日期、是否全勤、備注。編號(hào)即員工ID,若全勤則備注為“無”,若出差則備注為“出差”,若請(qǐng)假則備注為“請(qǐng)假”,其他則備注“無請(qǐng)假無出差”。

      2.7 設(shè)置管理員模塊設(shè)計(jì)

      設(shè)置管理員模塊只有超級(jí)管理員可以進(jìn)入,涉及到的數(shù)據(jù)庫表是管理員表,該表的屬性有:手機(jī)號(hào)、密碼、是否是超級(jí)管理員、姓名等。輸入手機(jī)號(hào)點(diǎn)擊查詢可以顯示該手機(jī)號(hào)對(duì)應(yīng)的員工姓名,若該手機(jī)號(hào)對(duì)應(yīng)員工表某位員工,則會(huì)顯示該員工姓名,輸入密碼,點(diǎn)擊“設(shè)置為管理員”,即可將該員工設(shè)置為管理員。

      3 系統(tǒng)具體實(shí)現(xiàn)

      與系統(tǒng)總體對(duì)應(yīng)的是Android手機(jī)通過Wifi與Bmob云數(shù)據(jù)庫相連接,手機(jī)與RFID讀卡器相連,RFID讀卡器與簽到卡相互聯(lián)系,再將讀取的信息發(fā)送到Bmob云數(shù)據(jù)庫,在Android手機(jī)端得以展示。具體的實(shí)物連接如圖4和圖5所示。

      圖4 添加員工信息

      圖5 員工簽到截圖

      3.1 員工考勤模塊的實(shí)現(xiàn)

      通過讀卡器提供的YowoRFIDreader.jar包提供的接口讀取到卡號(hào)后,先根據(jù)卡號(hào)查詢員工表中是否有此卡信息,查詢sql語句。若此卡號(hào)已注冊(cè),則會(huì)根據(jù)當(dāng)前日期和員工ID查詢考勤表中是否存在當(dāng)前日期的考勤記錄,查詢sql語句。若存在則會(huì)根據(jù)當(dāng)前時(shí)間段來判斷該修改四個(gè)打卡點(diǎn)中的哪一個(gè),此處默認(rèn)規(guī)定早上上班打卡時(shí)間為7:00~7:30,早上下班打卡時(shí)間為:11:00~11:30,下午上班打卡時(shí)間為:14:00~14:30,下午下班打卡時(shí)間為:18:00~18:30。創(chuàng)建一個(gè)考勤類attendence,根據(jù)上述時(shí)間段對(duì)attendence中對(duì)應(yīng)的屬性進(jìn)行賦值。這里的考勤類是Attendence創(chuàng)建的一個(gè)對(duì)象,Attendence類是繼承了BmobObject類的一個(gè)子類,用來存儲(chǔ)考勤表的信息,由于繼承了BmobObject類,所以可以調(diào)用該類的相關(guān)方法,從而實(shí)現(xiàn)數(shù)據(jù)上傳等操作。修改考勤表要根據(jù)查詢考勤表得到的記錄的ObjectID來使用Bmob提供的接口中的update()函數(shù),在Bmob提供的接口中創(chuàng)建考勤記錄。考勤表具體情況如圖6所示。

      圖6 考勤表部分截圖

      3.2 管理員登錄與管理模塊的實(shí)現(xiàn)

      該模塊具有保存密碼的功能,界面如圖7所示,該功能使用了Android中的SharedPreferences文件存儲(chǔ)。若用戶選中復(fù)選框,則代表用戶需要系統(tǒng)保存賬號(hào)、密碼,若未選中表示用戶不需要系統(tǒng)記住賬號(hào)、密碼。默認(rèn)情況下是復(fù)選框控件CheckBox未被選中狀態(tài)即值為false。當(dāng)用戶選中了復(fù)選框時(shí),系統(tǒng)生成一個(gè)SharedPreference對(duì)象,再通過調(diào)用getBoolean()方法可以獲得當(dāng)前賬號(hào)、密碼的鍵值。即此時(shí)是記住密碼功能,CheckBox的isChecked值為true,程序把賬號(hào)和密碼的值都存到SharedPreferences文件,并提交給系統(tǒng)。這時(shí),若用戶退出系統(tǒng)后重新登錄,那么用戶不需要再輸入賬號(hào)和密碼,系統(tǒng)會(huì)自動(dòng)將最后一次保存到SharedPreferences文件中的賬號(hào)和密碼值提取出來并顯示在對(duì)應(yīng)的文本框中,用戶直接點(diǎn)擊登錄即可登錄成功。反之,系統(tǒng)會(huì)調(diào)用clear()方法來清除SharedPreference中的賬號(hào)和密碼,從而實(shí)現(xiàn)不保存密碼的功能。對(duì)應(yīng)的管理界面如圖8所示。

      圖7 登錄界面

      圖8 管理員管理界

      3.3 添加和修改員工信息模塊的實(shí)現(xiàn)

      添加員工信息模塊由于需要將員工信息與RFID卡綁定,所以需要加載讀卡器驅(qū)動(dòng),當(dāng)刷卡后會(huì)將卡號(hào)顯示到界面上,再輸入姓名、性別、年齡、手機(jī)號(hào)和部門,創(chuàng)建一個(gè)Employee類,將輸入的信息存進(jìn)Employee類中,點(diǎn)擊錄入后會(huì)先查詢員工表中是否有此卡記錄,若有則提示“此卡已注冊(cè)”,否則調(diào)用save()方法將員工信息添加到數(shù)據(jù)庫中,添加完成后將輸入框中的信息全部置為空。修改員工信息模塊進(jìn)入后,首先會(huì)請(qǐng)求員工表的所有數(shù)據(jù),然后將員工姓名采用RecyclerView展示。點(diǎn)擊任意一位員工,采用Intent將該員工信息傳遞給員工信息修改界面。

      進(jìn)入員工信息修改界面(見圖9)后,對(duì)Intent中的數(shù)據(jù)進(jìn)行解析并展示到界面上,編輯員工屬性后,點(diǎn)擊修改,首先判斷該員工是否是管理員,如果是管理員,調(diào)用update()函數(shù)對(duì)管理員表中對(duì)應(yīng)的數(shù)據(jù)進(jìn)行修改,再調(diào)用update()函數(shù)對(duì)員工表中相對(duì)應(yīng)的員工信息進(jìn)行修改。修改完成后采用本地廣播的方式對(duì)RecyclerView展示界面的數(shù)據(jù)進(jìn)行更新。本地廣播方式可以保證廣播只在應(yīng)用程序的內(nèi)部傳遞廣播和接收廣播,避免了全局廣播被任何應(yīng)用程序接收而引起的安全性問題。對(duì)于系統(tǒng)發(fā)送廣播和注冊(cè)廣播通過LocalBroadcastManager管理器對(duì)其管理,注冊(cè)廣播采用registerReceiver方法,發(fā)送廣播采用sendBroadcast方法發(fā)送廣播com.example.test。這條發(fā)送的廣播通過系統(tǒng)接收器BroadcastReceiver來接收,當(dāng)收到對(duì)應(yīng)的廣播后會(huì)接受并解析數(shù)據(jù),然后對(duì)RecyclerView展示界面的員工信息進(jìn)行更新。點(diǎn)擊刪除,判斷該員工是否是管理員,如果是,調(diào)用delete()函數(shù)刪除管理員表中的該員工信息,再刪除員工表中的該員工信息。同時(shí)關(guān)閉當(dāng)前Activity并重新啟動(dòng)RecyclerView界面獲取最新的數(shù)據(jù)。添加簽到界面圖如圖10所示。

      圖9 修改員工信息界面

      圖10 添加簽到界面

      3.4 請(qǐng)假和出差模塊的實(shí)現(xiàn)

      請(qǐng)假模塊的日期選擇使用了DatePickerDialog(見圖11)。請(qǐng)假類型采用控件Spinner列表選擇框,相當(dāng)于彈出一個(gè)菜單供用戶選擇。數(shù)據(jù)全部輸入完成后,點(diǎn)擊錄入,首先查找員工表中是否存在輸入的手機(jī)號(hào),如果存在則獲取該手機(jī)號(hào)對(duì)應(yīng)的員工ID,調(diào)用save()函數(shù)即可在請(qǐng)假表中添加一條請(qǐng)假信息。出差模塊與請(qǐng)假模塊不同的是沒有請(qǐng)假類型,在輸入好信息后,點(diǎn)擊錄入,會(huì)根據(jù)手機(jī)號(hào)去查找員工表是否存在對(duì)應(yīng)數(shù)據(jù),如果存在則調(diào)用save()函數(shù)向出差表中添加一條出差信息,如圖12所示。

      圖11 請(qǐng)假界面

      圖12 出差界面

      3.5 員工出勤模塊的實(shí)現(xiàn)

      在員工出勤界面(見圖13),模塊會(huì)向員工表請(qǐng)求所有員工的信息,然后展示員工表中所有員工的姓名,這里采用ListView來實(shí)現(xiàn)信息展示。在ListView的上方還有一個(gè)搜索框,搜索框控件SearchView來實(shí)現(xiàn),它提供了一個(gè)輸入框,監(jiān)聽器實(shí)時(shí)監(jiān)控用戶輸入,當(dāng)用戶輸入搜索信息時(shí),可以實(shí)時(shí)進(jìn)行相關(guān)操作。監(jiān)聽器中通過String中的contains()方法來判斷員工姓名中是否包含輸入的信息,如果存在就將員工姓名加入一個(gè)findList集合中,然后更新listview,顯示包含輸入信息的員工姓名。

      點(diǎn)擊員工姓名,采用Intent將被點(diǎn)擊的員工信息傳送到員工考勤詳細(xì)界面。進(jìn)入員工考勤詳細(xì)界面后,根據(jù)傳過來的員工ID去查找請(qǐng)假表和出差表,根據(jù)當(dāng)前年月和員工ID去查找考勤表。由于網(wǎng)絡(luò)請(qǐng)求是異步的,所以此處加入了一段加載代碼,在請(qǐng)求和接受數(shù)據(jù)的時(shí)候頁面不會(huì)發(fā)生變化,等待網(wǎng)絡(luò)請(qǐng)求結(jié)束,根據(jù)數(shù)據(jù)再對(duì)頁面進(jìn)行更新,更新后的界面如圖14所示。在對(duì)請(qǐng)假天數(shù)和出差天數(shù)計(jì)算時(shí),涉及到計(jì)算天數(shù)的問題。由于數(shù)據(jù)庫中請(qǐng)假表和出差表的日期都是“年-月-日”的格式并且類型為String類型,所以采用String類型的contains()方法可以很快的篩選出符合條件的請(qǐng)假或出差信息。由于不同月份的天數(shù)可能不相同,所以在計(jì)數(shù)之前要對(duì)月份進(jìn)行判斷。此處默認(rèn)請(qǐng)假日期存在以下兩種情況:同年月,同年不同月(請(qǐng)假和出差日期不超過60天),所以要分別進(jìn)行處理。對(duì)于同年月直接調(diào)用自定義的daysBetween(begin,end)函數(shù)計(jì)算天數(shù)即可。對(duì)于同年不同月:先計(jì)算起始日期到月末的天數(shù),再計(jì)算結(jié)束日期所在月的第一天到結(jié)束日期的天數(shù),將兩種天數(shù)相加即可得到總天數(shù)。

      圖13 員工出勤界面

      圖14 員工考勤詳細(xì)界面

      3.6 具體出勤情況模塊的實(shí)現(xiàn)

      系統(tǒng)可以將具體出勤數(shù)據(jù)導(dǎo)出到Excel表格。如圖15所示,根據(jù)選擇的年份和月份來向考勤表中查詢數(shù)據(jù)。對(duì)請(qǐng)求到的數(shù)據(jù)進(jìn)行遍歷,如果四次打卡時(shí)間段有一次為空則會(huì)查找該員工在出差表和請(qǐng)假表中是否有記錄。如果有,再進(jìn)行日期的比較,判斷考勤日期是否在請(qǐng)假或出差時(shí)間內(nèi),比較日期采用java的String.compareTo()方法,該方法會(huì)產(chǎn)生三種int類型數(shù)據(jù),分別是正數(shù),負(fù)數(shù)和0,由此可以判斷日期的大小,當(dāng)考勤日期與起始日期和結(jié)束日期使用比較的返回值一正一負(fù)時(shí),代表該日期在請(qǐng)假日期或出差日期內(nèi)。若缺勤且在出差表和請(qǐng)假表中均無記錄,則備注“無請(qǐng)假無出差”。導(dǎo)出的Excel表格截圖如圖16所示,可以很清楚的查詢每一個(gè)員工的詳細(xì)考勤記錄。Excel設(shè)置了五項(xiàng)內(nèi)容,分別是:編號(hào)、姓名、日期、是否全勤和備注。這五項(xiàng)內(nèi)容的信息采用集合和String數(shù)組存儲(chǔ),再遍歷從考勤表請(qǐng)求到的數(shù)據(jù)的同時(shí)對(duì)集合和數(shù)組的對(duì)應(yīng)位置進(jìn)行修改。當(dāng)數(shù)據(jù)都已經(jīng)判斷完畢,生成完整的數(shù)據(jù)數(shù)組和集合,調(diào)用Statistics的有參構(gòu)造器,創(chuàng)建一個(gè)Statistics類,這個(gè)類包含的上述的五項(xiàng)屬性,用來將數(shù)據(jù)寫入到Excel表格中。將Statistics類加入到集合statistic中,然后傳到ExcelUtil中進(jìn)行Excel表格的創(chuàng)建和數(shù)據(jù)寫入等操作。

      圖15 具體出勤情況界面

      圖16 Excel表截圖

      4 總結(jié)

      本系統(tǒng)運(yùn)用Android視圖中有關(guān)可視化視圖與非可視化視圖的相關(guān)功能,包括使用前端框架進(jìn)行用戶界面的UI設(shè)計(jì)及UI編碼,使得本系統(tǒng)具有良好的界面,簡約美觀的效果,簡單的操作性等特點(diǎn)。通過Bmob官網(wǎng)提供的DataSDK,調(diào)用其內(nèi)部方法實(shí)現(xiàn)數(shù)據(jù)上傳、數(shù)據(jù)修改、數(shù)據(jù)刪除、數(shù)據(jù)獲取等功能。將數(shù)據(jù)存儲(chǔ)在云數(shù)據(jù)庫中,具有安全穩(wěn)定的特點(diǎn)。將安卓設(shè)備與讀卡器連接,通過讀卡器讀出卡號(hào)可以實(shí)現(xiàn)考勤功能和員工信息錄入功能。登錄管理員賬號(hào),可以實(shí)現(xiàn)對(duì)員工信息的管理和查看、錄入請(qǐng)假信息、錄入出差信息、導(dǎo)出考勤情況Excel表格等功能。實(shí)驗(yàn)測試表明應(yīng)用該系統(tǒng)便于管理人員分析、統(tǒng)計(jì)考勤信息,有利于現(xiàn)代公司和企事業(yè)單位的發(fā)展,使考勤管理更加科學(xué)合理,使企業(yè)的管理效率最大化。

      猜你喜歡
      手機(jī)號(hào)考勤姓名
      梁潮印箋·姓名章戢孴
      鉆天猴的手機(jī)號(hào)
      手機(jī)號(hào)的秘密
      基于人臉識(shí)別技術(shù)的考勤應(yīng)用研究
      電子制作(2019年12期)2019-07-16 08:45:28
      智能人臉識(shí)別考勤系統(tǒng)
      電子制作(2019年9期)2019-05-30 09:42:00
      姓名的『姓』字為什么是『女』旁?
      便攜式指紋考勤信息管理系統(tǒng)設(shè)計(jì)
      神回復(fù)
      廉政瞭望(2017年5期)2017-06-02 08:51:44
      “最嚴(yán)考勤”難留學(xué)生心
      找朋友
      海外英語(2013年1期)2013-08-27 09:36:04
      班玛县| 西畴县| 金塔县| 莲花县| 云浮市| 承德市| 青龙| 若羌县| 昌黎县| 宁晋县| 榆树市| 抚顺县| 科技| 陆川县| 凤翔县| 普格县| 余庆县| 泸定县| 玉山县| 长兴县| 额济纳旗| 正定县| 曲靖市| 江门市| 南溪县| 安远县| 广平县| 望江县| 青神县| 宁海县| 略阳县| 邵阳市| 栾川县| 青岛市| 郸城县| 昌图县| 永寿县| 德惠市| 沐川县| 尼勒克县| 旬阳县|