• 
    

    
    

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

      ?

      基于Android的學(xué)生請(qǐng)假APP的設(shè)計(jì)與實(shí)現(xiàn)

      2018-10-11 08:04張升潘佳佳
      軟件工程 2018年8期

      張升 潘佳佳

      摘 要:本文針對(duì)傳統(tǒng)學(xué)生請(qǐng)假過程中流程繁瑣耗時(shí)、記錄不便管理等弊端,設(shè)計(jì)開發(fā)一款基于Android的學(xué)生請(qǐng)假APP。該軟件分為學(xué)生、教師、班主任等三個(gè)不同的角色,在請(qǐng)假流程流轉(zhuǎn)過程中對(duì)應(yīng)不同的任務(wù)節(jié)點(diǎn)。本文首先簡(jiǎn)要介紹了系統(tǒng)開發(fā)的環(huán)境及工具,然后根據(jù)不同角色分析了各自的功能需求,并介紹了其設(shè)計(jì)及實(shí)現(xiàn)過程,最后對(duì)系統(tǒng)進(jìn)行了功能測(cè)試,驗(yàn)證了其能夠快捷高效的完成請(qǐng)假流程的流轉(zhuǎn)及管理。

      關(guān)鍵詞:Activiti;Android;學(xué)生請(qǐng)假

      中圖分類號(hào):TP311.1 文獻(xiàn)標(biāo)識(shí)碼:A

      1 引言(Introduction)

      目前,大學(xué)校園信息化正在逐漸完善,為了便于全校師生的學(xué)習(xí)、辦公、管理和生活,教務(wù)管理系統(tǒng)、招生就業(yè)系統(tǒng)等各種管理信息系統(tǒng)紛紛開始使用。而對(duì)于學(xué)生請(qǐng)假業(yè)務(wù)目前沒有相應(yīng)的軟件進(jìn)行實(shí)現(xiàn)與管理,還是按照線下方式完成。一般情況下,學(xué)生需要提前填寫請(qǐng)假申請(qǐng)表格,班主任首先進(jìn)行審批,并根據(jù)請(qǐng)假事由及天數(shù),判斷是否要交由上級(jí)學(xué)生主管部門審批備案。但這種形式有許多缺點(diǎn),例如請(qǐng)假過程費(fèi)時(shí)費(fèi)力,歷史信息不便記錄等。所以無論是學(xué)生還是教師都需要一個(gè)軟件對(duì)學(xué)生請(qǐng)假業(yè)務(wù)進(jìn)行實(shí)現(xiàn)和管理。

      本系統(tǒng)的目的是設(shè)計(jì)實(shí)現(xiàn)一個(gè)基于Android[1,2]的學(xué)生請(qǐng)假APP。此APP可以借助安卓移動(dòng)設(shè)備,不僅使學(xué)生可以隨時(shí)隨地發(fā)起請(qǐng)假申請(qǐng),還可以使老師及時(shí)處理請(qǐng)假申請(qǐng),方便記錄、了解學(xué)生的請(qǐng)假情況。

      2 系統(tǒng)開發(fā)環(huán)境及技術(shù)(System development

      environment and technology)

      2.1 開發(fā)環(huán)境

      系統(tǒng)使用Android Studio為開發(fā)環(huán)境。Android Studio是目前Android開發(fā)中使用人數(shù)最多的開發(fā)工具,其軟件布局大方得當(dāng),開發(fā)人員使用十分順手,具有豐富的快捷方法,流暢的代碼提示功能,其自帶的布局編輯器能夠使開發(fā)人員及時(shí)預(yù)覽布局效果或直接拖拉控件。

      2.2 系統(tǒng)架構(gòu)及主要技術(shù)

      系統(tǒng)采用MVP[3]設(shè)計(jì)模式,使Android開發(fā)中實(shí)現(xiàn)了更好的代碼解耦。View層對(duì)應(yīng)于視圖,負(fù)責(zé)頁面控件的顯示,以及與用戶進(jìn)行數(shù)據(jù)交換,Presenter為了完成視圖與數(shù)據(jù)間的連接,通過Model層的對(duì)象獲取數(shù)據(jù),然后將其傳到View層,而Model層主要作用于數(shù)據(jù),對(duì)其進(jìn)行加工處理。MVP架構(gòu)圖如圖1所示。

      系統(tǒng)使用了Activiti[4,5]業(yè)務(wù)流程管理框架,Activiti是基于Apache許可的開源BPM[6]平臺(tái),覆蓋了業(yè)務(wù)流程管理、工作流、服務(wù)協(xié)作等領(lǐng)域的一個(gè)開源的、靈活的、易擴(kuò)展的可執(zhí)行流程語言框架。本系統(tǒng)在此框架下進(jìn)行請(qǐng)假業(yè)務(wù)流程建模,在此框架下進(jìn)行請(qǐng)假流程的創(chuàng)建、流轉(zhuǎn)、歷史記錄等操作。

      在請(qǐng)假業(yè)務(wù)流程(圖2)中,首先由學(xué)生發(fā)起請(qǐng)假申請(qǐng),提交給班主任審批;班主任根據(jù)請(qǐng)假天數(shù)、是否離校等情況,經(jīng)過互斥路由節(jié)點(diǎn),選擇是直接通知學(xué)生審批結(jié)果,還是轉(zhuǎn)由上級(jí)分管領(lǐng)導(dǎo)審批;分管領(lǐng)導(dǎo)審批結(jié)束后,將審批結(jié)果通知學(xué)生;學(xué)生根據(jù)審批結(jié)果經(jīng)過路由節(jié)點(diǎn)做相應(yīng)處理,若通過則通知相關(guān)代課教師后結(jié)束流程,若沒有通過則直接結(jié)束流程。

      3 系統(tǒng)需求分析及功能設(shè)計(jì)(System requirement

      analysis and function design)

      3.1 系統(tǒng)功能需求

      本系統(tǒng)主要有學(xué)生、班主任/分管領(lǐng)導(dǎo)和代課教師三種不同的角色,分別有不同的功能需求。

      (1)學(xué)生角色主要功能

      ①發(fā)起請(qǐng)假申請(qǐng):學(xué)生發(fā)起請(qǐng)假申請(qǐng),填寫請(qǐng)假申請(qǐng)表中的請(qǐng)假起止時(shí)間、請(qǐng)假事由、是否離校外出及外出目的地等信息后,提交班主任審批。

      ②發(fā)起銷假申請(qǐng):學(xué)生對(duì)審批通過的請(qǐng)假申請(qǐng),發(fā)起銷假申請(qǐng),提供圖片等返校憑證后,提交班主任審核。

      ③歷史查詢:查詢歷史請(qǐng)假申請(qǐng)情況。

      (2)班主任/分管領(lǐng)導(dǎo)角色主要功能

      ①請(qǐng)假審批:審核學(xué)生發(fā)起的請(qǐng)假申請(qǐng)表中的內(nèi)容,填寫審批意見后,進(jìn)行拒絕、同意及轉(zhuǎn)發(fā)操作。

      ②銷假審批:審核學(xué)生發(fā)起的銷假申請(qǐng),查看返校憑證的圖片,進(jìn)行拒絕、同意及轉(zhuǎn)發(fā)操作。

      ③歷史查詢:查詢處理過的請(qǐng)假、銷假申請(qǐng)。

      (3)代課教師角色主要功能

      代課教師角色功能較少,主要為請(qǐng)假信息查詢:用來查看學(xué)生請(qǐng)假成功后轉(zhuǎn)發(fā)過來的有效的請(qǐng)假信息。

      3.2 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)

      本系統(tǒng)數(shù)據(jù)庫(kù)名為leavesystem,里面包含34個(gè)表,其中23個(gè)表為Activiti框架自動(dòng)生成的表,其余的數(shù)據(jù)表依次分別是本系統(tǒng)業(yè)務(wù)所需要的表。下面將對(duì)這些數(shù)據(jù)表分別介紹。

      (1)Activiti框架相關(guān)表

      Activiti框架相關(guān)表全部是以act_開頭,分別有資源流程信息表、運(yùn)行時(shí)信息表、歷史數(shù)據(jù)表、用戶信息表、公共數(shù)據(jù)表五類。

      ①資源流程信息表主要有:

      act_re_deployment表:用來用于記錄部署信息;

      act_re_model表:用于記錄流程設(shè)計(jì)模型部署數(shù)據(jù);

      act_re_procdef表:用于記錄流程定義數(shù)據(jù)。

      ②運(yùn)行時(shí)信息表主要有:

      act_ru_execution表:用于記錄運(yùn)行時(shí)流程執(zhí)行實(shí)例信息;

      act_ru_identitylink表:用于記錄運(yùn)行時(shí)流程人員信息;

      act_ru_task表:用于記錄運(yùn)行時(shí)任務(wù)節(jié)點(diǎn)信息;

      act_ru_variable表:用于記錄運(yùn)行時(shí)流程變量數(shù)據(jù);

      act_ru_event_subscr表:用于throwEvent、catchEvent時(shí)間監(jiān)聽;

      act_ru_job表:用于記錄運(yùn)行時(shí)定時(shí)任務(wù)數(shù)據(jù)。

      ③歷史數(shù)據(jù)表主要有:

      act_hi_actinst表:用于記錄歷史節(jié)點(diǎn)信息;

      act_hi_attachment表:用于記錄歷史附件信息;

      act_hi_comment表:用于記錄歷史意見;

      act_hi_identitylink表:用于記錄歷史流程人員信息;

      act_hi_detail 表:用于記錄歷史詳情;

      act_hi_procinst表:用于記錄歷史流程實(shí)例信息;

      act_hi_taskinst表:用于記錄歷史任務(wù)實(shí)例信息;

      act_hi_varinst表:用于記錄歷史變量。

      ④用戶信息表主要有:

      act_id_group表:用于記錄用戶組信息;

      act_id_info表:用于記錄用戶擴(kuò)展信息;

      act_id_membership表:用于記錄用戶與用戶組對(duì)應(yīng)信息;

      act_id_user表:用于記錄用戶信息。

      ⑤公共數(shù)據(jù)表主要有:

      act_ge_bytearray表:用于記錄二進(jìn)制數(shù)據(jù);

      act_ge_property表:用于記錄整個(gè)流程引擎級(jí)別的數(shù)據(jù)。

      (2)系統(tǒng)業(yè)務(wù)相關(guān)表

      系統(tǒng)業(yè)務(wù)相關(guān)的表主要有:用戶表(user)、老師表(teacher)、學(xué)生表(student)、專業(yè)表(major)、班級(jí)表(classes)、角色表(role)、角色—用戶表(role_user)、老師—班級(jí)表(teacher_class)、假條表(leavecontent)、請(qǐng)假表(leavess)、銷假表(back)等。

      ①用戶表(user):主要字段有用戶id、用戶名、用戶賬號(hào)、密碼、郵箱等。

      ②老師表(teacher):老師繼承自用戶,主要字段為id,且與用戶表一致。

      ③學(xué)生表(student):學(xué)生繼承自用戶,主要字段有id(與用戶表一致)、班級(jí)id、專業(yè)id等。

      ④專業(yè)表(major):主要字段有專業(yè)id、專業(yè)名稱、專業(yè)說明、備注等。

      ⑤班級(jí)表(classes):主要字段有班級(jí)id、班級(jí)名稱、專業(yè)id、備注等。

      ⑥角色表(role):主要字段有角色id、角色名稱、說明等。

      ⑦角色—用戶表(role_user):主要字段有角色id、用戶id,用來存放角色和用戶的對(duì)應(yīng)關(guān)系。

      ⑧老師—班級(jí)表(teacher_class):主要字段有老師id、班級(jí)id、角色id,用來存放老師和班級(jí)的對(duì)應(yīng)關(guān)系。

      ⑨假條表(leavecontent):主要字段有id、流程id、學(xué)生id、開始時(shí)間、結(jié)束時(shí)間、請(qǐng)假原因、狀態(tài)標(biāo)志位等。

      ⑩請(qǐng)假表(leavess):主要字段有id、流程id、假條id、老師id、申請(qǐng)時(shí)間、回復(fù)時(shí)間、回復(fù)內(nèi)容、狀態(tài)標(biāo)志位、轉(zhuǎn)發(fā)id等。

      銷假表(back):主要字段有id、流程id、假條id、銷假內(nèi)容、時(shí)間、地址、照片路徑、回復(fù)內(nèi)容、回復(fù)時(shí)間、申請(qǐng)時(shí)間、狀態(tài)標(biāo)志位等。

      4 系統(tǒng)實(shí)現(xiàn)(System implementation)

      系統(tǒng)可分為Android端和服務(wù)端兩部分。Android端采用MVP架構(gòu),其中View層為***Activity類,用來實(shí)現(xiàn)Android端界面,并使用ButterKnife進(jìn)行View對(duì)象綁定;Presenter層為***Request類,負(fù)責(zé)View層和Model層的交互,被View層的***Activity類引用,同時(shí)引用Model層的數(shù)據(jù)模型,若需要服務(wù)端的支持通過Retrofit網(wǎng)絡(luò)請(qǐng)求框架向服務(wù)端發(fā)送請(qǐng)求。服務(wù)端使用Servlet來處理Http請(qǐng)求;定義數(shù)據(jù)表對(duì)應(yīng)的實(shí)體類;定義***Dao類用來對(duì)實(shí)體類進(jìn)行數(shù)據(jù)訪問操作。下面介紹兩個(gè)主要功能的實(shí)現(xiàn)過程。

      (1)用戶登錄

      登錄界面(圖3)中主要有賬號(hào)、密碼文本框(EditText)、登錄按鈕(Button)和logo圖標(biāo)(ImageView)等組件,由View層LoginActivity類實(shí)現(xiàn)該頁面。打開登錄頁面時(shí),在onCreate方法中為組件、引用的Request及相關(guān)數(shù)據(jù)進(jìn)行初始化并使用ObjectAnimator屬性動(dòng)畫以漸出效果呈現(xiàn)各個(gè)組件。當(dāng)輸入賬號(hào)、密碼后點(diǎn)擊登錄按鈕時(shí),在登錄按鈕OnClick事件方法中判斷賬號(hào)、密碼是否填寫完整;若沒有填寫完整,彈出對(duì)應(yīng)的Toast消息框;若填寫完整,調(diào)用Presenter層LoginActivityRequest類中的login方法向服務(wù)端發(fā)送請(qǐng)求,服務(wù)端使用LoginServlet類處理該請(qǐng)求,返回登錄是否成功的響應(yīng)結(jié)果。login方法中將根據(jù)請(qǐng)求的不同響應(yīng)結(jié)果給出不同處理,若登錄請(qǐng)求不成功,則彈出響應(yīng)的信息;若登錄請(qǐng)求成功,調(diào)用View層中success方法,利用SharedPreferences將用戶信息記錄在用戶手機(jī)中,同時(shí)判斷當(dāng)前用戶角色,若角色數(shù)大于1,則彈出選擇角色窗口,由用戶選擇后,進(jìn)入對(duì)應(yīng)的界面,否則直接進(jìn)入當(dāng)前角色對(duì)應(yīng)的界面。

      (2)發(fā)起請(qǐng)假

      發(fā)起請(qǐng)假界面(圖4)主要有請(qǐng)假開始時(shí)間、請(qǐng)假結(jié)束時(shí)間、請(qǐng)假請(qǐng)求發(fā)送至及請(qǐng)假原因等組件,由View層WriteLeaveActivity類實(shí)現(xiàn)該界面。用戶進(jìn)入該頁面后,點(diǎn)擊“開始時(shí)間”和“結(jié)束時(shí)間”將出現(xiàn)DatePickerDialog時(shí)間選擇器,方便用戶選擇時(shí)間。若開始時(shí)間超過結(jié)束時(shí)間,在Toast提示框中,顯示相應(yīng)錯(cuò)誤信息。點(diǎn)擊“選擇發(fā)送到”按鈕,用戶可選擇發(fā)送請(qǐng)假請(qǐng)求的老師,列表中優(yōu)先列出該學(xué)生的班主任。信息填寫完成后,點(diǎn)擊“完成”按鈕,將通過對(duì)應(yīng)的Presenter層WriteLeaveActiRequest類中的toLeave方法向服務(wù)器發(fā)出請(qǐng)求,服務(wù)器端ToLeaveServlet接受處理后,返回是否響應(yīng)成功的結(jié)果。

      5 結(jié)論(Conclusion)

      系統(tǒng)針對(duì)高校學(xué)生請(qǐng)銷假的實(shí)際需求出發(fā),使用標(biāo)準(zhǔn)的BPM框架Activiti進(jìn)行流程設(shè)計(jì),實(shí)現(xiàn)了學(xué)生請(qǐng)假的Android App,能夠方便快捷的進(jìn)行請(qǐng)假流程的流轉(zhuǎn),能夠?qū)崿F(xiàn)請(qǐng)假信息的管理與統(tǒng)計(jì)。系統(tǒng)使用了目前Android開發(fā)中較流行的MVP架構(gòu),使用Retrofit框架實(shí)現(xiàn)HTTP請(qǐng)求,使用Servlet進(jìn)行請(qǐng)求響應(yīng),頁面設(shè)計(jì)采用Material風(fēng)格。系統(tǒng)主要分學(xué)生、班主任/分管領(lǐng)導(dǎo)和代課教師等三種角色,實(shí)現(xiàn)了學(xué)生發(fā)起請(qǐng)銷假請(qǐng)求、班主任/分管領(lǐng)導(dǎo)處理(批準(zhǔn)或轉(zhuǎn)發(fā))請(qǐng)銷假請(qǐng)求、學(xué)生和代課教師查看審批結(jié)果等流程流轉(zhuǎn)功能,此外還實(shí)現(xiàn)了歷史請(qǐng)假請(qǐng)求查詢、統(tǒng)計(jì)等信息管理功能。當(dāng)前系統(tǒng)中的請(qǐng)銷假流程是使用Activiti框架預(yù)先設(shè)計(jì)好的,任務(wù)節(jié)點(diǎn)相對(duì)固定,雖然能滿足當(dāng)前請(qǐng)銷假業(yè)務(wù)的需要,但不夠靈活,若業(yè)務(wù)流程有較大變動(dòng),需重新設(shè)計(jì)修改編碼。所以,系統(tǒng)在后期迭代更新時(shí),可考慮增加流程定義功能,能夠在系統(tǒng)中定義使用流程。

      參考文獻(xiàn)(References)

      [1] Liu Yi.Mobile Network Application Engine Design Based on Android System[J].Applied Mechanics and Materials,2014(608):291-294.

      [2] Lin Deng,Jeff Offutt,Paul Ammann,Nariman Mirzaei.Mutation operators for testing Android apps[J].Information and Software Technology,2017,1(81):154-168.

      [3] 曾露.MVP模式在Android中的應(yīng)用研究[J].軟件,2016(06):75-78.

      [4] 孫勇.基于Activiti的考勤工作流系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2016(02):75-78.

      [5] 李修云.基于Activiti框架的在線審批流程應(yīng)用研究[J].計(jì)算機(jī)科學(xué),2016,43(6A):555-557.

      [6] Matthias Geiger,Simon Harrer,J?rg Lenhard,et al.BPMN 2.0:The state of support and implementation[J].Future Generation Computer Systems,2018,3(80):250-262.

      作者簡(jiǎn)介:

      張 升(1982-),男,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用.

      潘佳佳(1995-),女,本科.研究領(lǐng)域:軟件開發(fā).

      芦山县| 延吉市| 呼伦贝尔市| 孟津县| 邵东县| 内黄县| 新密市| 绵阳市| 那坡县| 威宁| 湟源县| 六枝特区| 深圳市| 漳浦县| 建德市| 金溪县| 施秉县| 荥经县| 白朗县| 鹤山市| 三明市| 射阳县| 栖霞市| 湖北省| 兖州市| 海口市| 巫溪县| 樟树市| 新源县| 离岛区| 南宫市| 喀喇沁旗| 罗定市| 台前县| 阿城市| 抚州市| 尉氏县| 隆回县| 广州市| 马龙县| 霍邱县|