技術報告基于Android的學生請假APP_第1頁
技術報告基于Android的學生請假APP_第2頁
技術報告基于Android的學生請假APP_第3頁
技術報告基于Android的學生請假APP_第4頁
技術報告基于Android的學生請假APP_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計劃類別 項目編號 項目技術報告課題名稱 項目主持人 承擔單位 題目:基于Android的學生請假APP的設計與實現本文針對傳統學生請假過程中流程繁瑣耗時、記錄不便管理等弊端,設計開發一款基于Android的學生請假APP。該軟件分為學生、教師、班主任等三個不同的角色,在請假流程流轉過程中對應不同的任務節點。本文首先簡要介紹了系統開發的環境及工具,然后根據不同角色分析了各自的功能需求,并介紹了其設計及實現過程,最后對系統進行了功能測試,驗證了其能夠快捷高效的完成請假流程的流轉及管理。關鍵詞:Activiti;Android;學生請假1 引言(Introduction)目前,大學校園信息化正在逐

2、漸完善,為了便于全校師生的學習、辦公、管理和生活,教務管理系統、招生就業系統等各種管理信息系統紛紛開始使用。而對于學生請假業務目前沒有相應的軟件進行實現與管理,還是按照線下方式完成。一般情況下,學生需要提前填寫請假申請表格,班主任首先進行審批,并根據請假事由及天數,判斷是否要交由上級學生主管部門審批備案。但這種形式有許多缺點,例如請假過程費時費力,歷史信息不便記錄等。所以無論是學生還是教師都需要一個軟件對學生請假業務進行實現和管理。本系統的目的是設計實現一個基于Android1,2的學生請假APP。此APP可以借助安卓移動設備,不僅使學生可以隨時隨地發起請假申請,還可以使老師及時處理請假申請,

3、方便記錄、了解學生的請假情況。2 系統開發環境及技術(System developmentenvironment and technology)2.1 開發環境系統使用Android Studio為開發環境。Android Studio是目前Android開發中使用人數最多的開發工具,其軟件布局大方得當,開發人員使用十分順手,具有豐富的快捷方法,流暢的代碼提示功能,其自帶的布局編輯器能夠使開發人員及時預覽布局效果或直接拖拉控件。2.2 系統架構及主要技術系統采用MVP3設計模式,使Android開發中實現了更好的代碼解耦。View層對應于視圖,負責頁面控件的顯示,以及與用戶進行數據交換,Pre

4、senter為了完成視圖與數據間的連接,通過Model層的對象獲取數據,然后將其傳到View層,而Model層主要作用于數據,對其進行加工處理。MVP架構圖如圖1所示。系統使用了Activiti4,5業務流程管理框架,Activiti是基于Apache許可的開源BPM6平臺,覆蓋了業務流程管理、工作流、服務協作等領域的一個開源的、靈活的、易擴展的可執行流程語言框架。本系統在此框架下進行請假業務流程建模,在此框架下進行請假流程的創建、流轉、歷史記錄等操作。在請假業務流程(圖2)中,首先由學生發起請假申請,提交給班主任審批;班主任根據請假天數、是否離校等情況,經過互斥路由節點,選擇是直接通知學生審

5、批結果,還是轉由上級分管領導審批;分管領導審批結束后,將審批結果通知學生;學生根據審批結果經過路由節點做相應處理,若通過則通知相關代課教師后結束流程,若沒有通過則直接結束流程。3 系統需求分析及功能設計(System requirementanalysis and function design)3.1 系統功能需求本系統主要有學生、班主任/分管領導和代課教師三種不同的角色,分別有不同的功能需求。(1)學生角色主要功能發起請假申請:學生發起請假申請,填寫請假申請表中的請假起止時間、請假事由、是否離校外出及外出目的地等信息后,提交班主任審批。發起銷假申請:學生對審批通過的請假申請,發起銷假申請,

6、提供圖片等返校憑證后,提交班主任審核。歷史查詢:查詢歷史請假申請情況。(2)班主任/分管領導角色主要功能請假審批:審核學生發起的請假申請表中的內容,填寫審批意見后,進行拒絕、同意及轉發操作。銷假審批:審核學生發起的銷假申請,查看返校憑證的圖片,進行拒絕、同意及轉發操作。歷史查詢:查詢處理過的請假、銷假申請。(3)代課教師角色主要功能代課教師角色功能較少,主要為請假信息查詢:用來查看學生請假成功后轉發過來的有效的請假信息。3.2 系統數據庫設計本系統數據庫名為leavesystem,里面包含34個表,其中23個表為Activiti框架自動生成的表,其余的數據表依次分別是本系統業務所需要的表。下面

7、將對這些數據表分別介紹。(1)Activiti框架相關表Activiti框架相關表全部是以act_開頭,分別有資源流程信息表、運行時信息表、歷史數據表、用戶信息表、公共數據表五類。資源流程信息表主要有:act_re_deployment表:用來用于記錄部署信息;act_re_model表:用于記錄流程設計模型部署數據;act_re_procdef表:用于記錄流程定義數據。運行時信息表主要有:act_ru_execution表:用于記錄運行時流程執行實例信息;act_ru_identitylink表:用于記錄運行時流程人員信息;act_ru_task表:用于記錄運行時任務節點信息;act_ru_

8、variable表:用于記錄運行時流程變量數據;act_ru_event_subscr表:用于throwEvent、catchEvent時間監聽;act_ru_job表:用于記錄運行時定時任務數據。歷史數據表主要有:act_hi_actinst表:用于記錄歷史節點信息;act_hi_attachment表:用于記錄歷史附件信息;act_hi_comment表:用于記錄歷史意見;act_hi_identitylink表:用于記錄歷史流程人員信息;act_hi_detail表:用于記錄歷史詳情;act_hi_procinst表:用于記錄歷史流程實例信息;act_hi_taskinst表:用于記錄歷

9、史任務實例信息;act_hi_varinst表:用于記錄歷史變量。用戶信息表主要有:act_id_group表:用于記錄用戶組信息;act_id_info表:用于記錄用戶擴展信息;act_id_membership表:用于記錄用戶與用戶組對應信息;act_id_user表:用于記錄用戶信息。公共數據表主要有:act_ge_bytearray表:用于記錄二進制數據;act_ge_property表:用于記錄整個流程引擎級別的數據。(2)系統業務相關表系統業務相關的表主要有:用戶表(user)、老師表(teacher)、學生表(student)、專業表(major)、班級表(classes)、角色

10、表(role)、角色用戶表(role_user)、老師班級表(teacher_class)、假條表(leavecontent)、請假表(leavess)、銷假表(back)等。用戶表(user):主要字段有用戶id、用戶名、用戶賬號、密碼、郵箱等。老師表(teacher):老師繼承自用戶,主要字段為id,且與用戶表一致。學生表(student):學生繼承自用戶,主要字段有id(與用戶表一致)、班級id、專業id等。專業表(major):主要字段有專業id、專業名稱、專業說明、備注等。班級表(classes):主要字段有班級id、班級名稱、專業id、備注等。角色表(role):主要字段有角色id

11、、角色名稱、說明等。角色用戶表(role_user):主要字段有角色id、用戶id,用來存放角色和用戶的對應關系。老師班級表(teacher_class):主要字段有老師id、班級id、角色id,用來存放老師和班級的對應關系。假條表(leavecontent):主要字段有id、流程id、學生id、開始時間、結束時間、請假原因、狀態標志位等。請假表(leavess):主要字段有id、流程id、假條id、老師id、申請時間、回復時間、回復內容、狀態標志位、轉發id等。銷假表(back):主要字段有id、流程id、假條id、銷假內容、時間、地址、照片路徑、回復內容、回復時間、申請時間、狀態標志位等。

12、4 系統實現(System implementation)系統可分為Android端和服務端兩部分。Android端采用MVP架構,其中View層為*Activity類,用來實現Android端界面,并使用ButterKnife進行View對象綁定;Presenter層為*Request類,負責View層和Model層的交互,被View層的*Activity類引用,同時引用Model層的數據模型,若需要服務端的支持通過Retrofit網絡請求框架向服務端發送請求。服務端使用Servlet來處理Http請求;定義數據表對應的實體類;定義*Dao類用來對實體類進行數據訪問操作。下面介紹兩個主要功能

13、的實現過程。(1)用戶登錄登錄界面(圖3)中主要有賬號、密碼文本框(EditText)、登錄按鈕(Button)和logo圖標(ImageView)等組件,由View層LoginActivity類實現該頁面。打開登錄頁面時,在onCreate方法中為組件、引用的Request及相關數據進行初始化并使用ObjectAnimator屬性動畫以漸出效果呈現各個組件。當輸入賬號、密碼后點擊登錄按鈕時,在登錄按鈕OnClick事件方法中判斷賬號、密碼是否填寫完整;若沒有填寫完整,彈出對應的Toast消息框;若填寫完整,調用Presenter層LoginActivityRequest類中的login方法向

14、服務端發送請求,服務端使用LoginServlet類處理該請求,返回登錄是否成功的響應結果。login方法中將根據請求的不同響應結果給出不同處理,若登錄請求不成功,則彈出響應的信息;若登錄請求成功,調用View層中success方法,利用SharedPreferences將用戶信息記錄在用戶手機中,同時判斷當前用戶角色,若角色數大于1,則彈出選擇角色窗口,由用戶選擇后,進入對應的界面,否則直接進入當前角色對應的界面。(2)發起請假發起請假界面(圖4)主要有請假開始時間、請假結束時間、請假請求發送至及請假原因等組件,由View層WriteLeaveActivity類實現該界面。用戶進入該頁面后,

15、點擊“開始時間”和“結束時間”將出現DatePickerDialog時間選擇器,方便用戶選擇時間。若開始時間超過結束時間,在Toast提示框中,顯示相應錯誤信息。點擊“選擇發送到”按鈕,用戶可選擇發送請假請求的老師,列表中優先列出該學生的班主任。信息填寫完成后,點擊“完成”按鈕,將通過對應的Presenter層WriteLeaveActiRequest類中的toLeave方法向服務器發出請求,服務器端ToLeaveServlet接受處理后,返回是否響應成功的結果。5 結論(Conclusion)系統針對高校學生請銷假的實際需求出發,使用標準的BPM框架Activiti進行流程設計,實現了學生請

16、假的Android App,能夠方便快捷的進行請假流程的流轉,能夠實現請假信息的管理與統計。系統使用了目前Android開發中較流行的MVP架構,使用Retrofit框架實現HTTP請求,使用Servlet進行請求響應,頁面設計采用Material風格。系統主要分學生、班主任/分管領導和代課教師等三種角色,實現了學生發起請銷假請求、班主任/分管領導處理(批準或轉發)請銷假請求、學生和代課教師查看審批結果等流程流轉功能,此外還實現了歷史請假請求查詢、統計等信息管理功能。當前系統中的請銷假流程是使用Activiti框架預先設計好的,任務節點相對固定,雖然能滿足當前請銷假業務的需要,但不夠靈活,若業

17、務流程有較大變動,需重新設計修改編碼。所以,系統在后期迭代更新時,可考慮增加流程定義功能,能夠在系統中定義使用流程。參考文獻(References)1 Liu Yi.Mobile Network Application Engine Design Based on Android SystemJ.Applied Mechanics and Materials,2014(608):291-294.2 Lin Deng,Jeff Offutt,Paul Ammann,Nariman Mirzaei.Mutation operators for testing Android appsJ.Information and Software Technology,2017,1(81):154-168.3 曾露.MVP模式在Android中的應用研究J.軟件,2016(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論