


摘? 要:移動設備的大范圍普及極大地促進了移動辦公的發展,Android系統的開放性也為此提供了很大的便利。移動辦公系統很好地解決了傳統辦公系統存在的時間和空間上的限制,極大地提高了辦公效率,改善了辦公體驗。文章綜合Web端和移動端設計了基于Android的移動OA辦公系統,Web端主要運用了SSM框架,實現了系統交互以及移動端與服務器的通信;移動端使用Kotlin語言,主要實現了用戶登錄、打卡簽到、查看公告、個人中心等功能。
關鍵詞:移動辦公;SSM;安卓
中圖分類號:TP311.52? ? ? 文獻標識碼:A 文章編號:2096-4706(2020)16-0104-03
Mobile OA Office System Based on Android
YU Xiaoli
(College of Computer Information Engineering,Nanchang Institute of Technology,Nanchang? 330044,China)
Abstract:The popularity of mobile devices has greatly promoted the development of mobile office,and the openness of Android system also provides great convenience. Mobile office system can solve the time and space defects of the previous office system,greatly improve the office efficiency and improve the office experience. A mobile OA office system based on Android is designed by integrating Web and mobile terminal. SSM framework is mainly used in Web side to realize system interaction and communication between mobile terminal and server. The mobile terminal uses Kotlin language,which mainly realizes the functions of user login,check-in and clock out,view announcement,personal center and so on.
Keywords:mobile office;SSM;Android
0? 引? 言
為了滿足南昌理工學院計算機信息工程學院教師希望能夠隨時隨地辦公的需求,作者帶領學生開發了基于Android的移動OA辦公系統,系統分為Web端和移動端,Web端主要功能有用戶登錄、公告管理、人員管理和個人中心等,移動端主要功能有用戶登錄、打卡簽到、個人中心、即時通信和查看公告等。
該系統很好地支持南昌理工學院計算機信息工程學院教師在不同地點、不同時間的辦公,讓教師擺脫了時間和空間的限制,有效地提高了辦公效率,解決了教師不能隨時獲取和處理辦公文件的問題。
本系統面向的用戶角色包括:
(1)系統管理員:系統管理員是為了辦公系統能夠正常運行而存在的角色,主要負責維護數據庫、管理賬號、更新信息以及管理系統的常規化運行。
(2)普通用戶:普通用戶通過移動端等各種類型的終端登錄辦公系統,從而完成各項任務,達到移動辦公的目的。
(3)管理層用戶:管理層用戶較普通用戶而言擁有更多的權限,管理層用戶主要可以在Web端對員工發布公告、下達命令、指定任務等。
1? 系統架構設計
本文所設計的OA辦公系統架構由移動端、Web端、Web服務器、數據庫服務器四個部分組成,各部分通過無線網絡互連,系統架構如圖1所示。
在本系統架構中,系統管理員可以通過Web端網頁登入系統后臺,對系統進行操作。普通用戶和管理層用戶使用移動端登錄系統,與系統進行交互。移動端通過調用接口的方式發送請求到Web服務器,Web服務器響應移動端的請求做出相應的處理,再將自身從數據庫中獲取的數據處理好返回給移動端。
2? 系統核心功能設計與實現
本系統在Web端和移動端都使用了MVC結構進行設計,視圖層、數據持久層和控制層的分離有效地降低了系統的耦合性,使得系統具備了良好的框架結構,易于后期對系統的維護和擴展。系統核心(部分)功能如圖2所示。
2.1? Web端公告管理
管理層用戶登錄后可以對公告進行增刪改查等操作,Web端公告管理界面如圖3所示。
該功能核心代碼如下:
@RequestMapping("/noticelist")
public ModelAndView findall(@RequestParam(name="page",required = true,defaultValue = "1")int page,@RequestParam(name="size",required=true,defaultValue = "5") int size,@RequestParam(name="flag",required = true,defaultValue = "allResult")String flag,@RequestParam(name="keywords",required = true,defaultValue = "")String keywords)throws Exception {
ModelAndView mav = new ModelAndView ();
if(flag.equals("allResult")) {
flag = "allResult";
mav.addObject("flag", flag);
List
PageInfo
mav.addObject("pageInfo",pageInfo);
}else if(flag.equals("partResult")) {
flag = "partResult";
mav.addObject("flag", flag);
mav.addObject("keywords", keywords);
PageHelper.startPage(page, size);
List
PageInfo
mav.addObject("pageInfo",pageInfo);
}
return mav;
}
以上代碼主要實現了查詢所有公告并將其返回給前端界面的功能。如果flag為allResult則首先調用nservice.findall (page,size)方法在數據庫中查詢所有公告,將該方法返回的數據保存在all對象中再執行PageInfo
2.2? 移動端用戶登錄
移動端用戶登錄界面模擬展示如圖4所示移動端用戶登錄。
實現移動端用戶登錄的主要代碼如下所示:
(1)登錄流程代碼為:
login.setOnClickListener {
val loginDao = LoginDao()
if(isFirstLogin =="true"){
//賬號密碼登錄
loginFlag = loginDao.login(account.toString (),MD5.MD5(password.toString()))
if(loginFlag == "success") {
//從服務器獲取token
token = loginDao.getTokenFromWeb()
//保存token到Sqllite
loginDao.saveToken(token)
}
loginCheck(loginFlag)
} else if(isFirstLogin =="false"){
//獲取token
token = loginDao.getToken()
//用token向服務器發登錄送求
loginFlag = loginDao.loginByToken(token)
loginCheck(loginFlag)
}
}
(2)登錄校驗代碼為:
//登錄校驗
private fun loginCheck(loginFlag:String){
if(loginFlag == "success"){
isFirstLogin = "false"
val intent = Intent(this,MainActivity::class.java)
startActivity(intent)
this.finish()
}else if(loginFlag == "fail"){
//清空賬號密碼
account.setText("")
password.setText("")
//彈出提示
toast("用戶名或密碼錯誤!")
}
}
以上代碼的業務邏輯為判斷用戶是否為第一次登錄,如果是第一次登錄則執行loginDao.login(account.toString(), MD5.MD5(password.toString()))方法,向服務器發送請求,獲取服務器返回的數據保存到loginFlag中,如果loginFlag為success則執行loginDao.getTokenFromWeb()方法從服務器獲取生成的token,然后再保存在移動端的SQLite數據庫中,之后再調用loginCheck(loginFlag)方法判斷是否進入主頁面。若不是第一次登錄,則先調用loginDao.getToken()方法獲取保存在SQLite數據庫中的token,再調用loginDao.loginByToken(token)方法向服務器發送登錄請求,最后再調用loginCheck(loginFlag)方法判斷是否進入主頁面。
2.3? 移動端查看公告
在移動端查看公告功能的實現過程中,移動端與服務器端通信的方法與移動端用戶登錄類似。用戶登錄后可以查看所有公告,點擊某一條公告時就能查看到該條公告的詳細信息。移動端查看公告界面的模擬展示如圖5所示。
3? 結? 論
本文設計并實現了一個具有Web端和移動端的移動OA辦公系統,使用SSM框架,搭建Web服務器作為數據交互的后臺并設計了Web前端頁面。本文使用JSON格式的數據作為服務器端與移動端數據傳輸格式,設計了優美移動端界面,系統主要實現了用戶登錄、公告管理、打卡簽到等功能。由于系統處在測試階段,部分功能還有待進一步優化。
參考文獻:
[1] 程亮.基于Android的移動政務OA客戶端設計與實現 [D].西安:西安電子科技大學,2016.
[2] 姚蘆娟.基于Android平臺的移動OA系統的設計與實現 [D].成都:電子科技大學,2018.
[3] 梁鍾燁.基于Android平臺OA軟件的設計與實現 [D].上海:東華大學,2016.
作者簡介:余曉麗(1981—),女,漢族,江西南昌人,講師,研究生,碩士,研究方向:軟件工程。