APP下载

基于Android的移动OA办公系统

2020-01-03余晓丽

现代信息科技 2020年16期
关键词:安卓

摘  要:移动设备的大范围普及极大地促进了移动办公的发展,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 all = nservice.findall(page, size);

PageInfo pageInfo = new PageInfo (all);

mav.addObject("pageInfo",pageInfo);

}else if(flag.equals("partResult")) {

flag = "partResult";

mav.addObject("flag", flag);

mav.addObject("keywords", keywords);

PageHelper.startPage(page, size);

List all = nservice.getByLike(keywords, page,size);

PageInfo pageInfo = new PageInfo(all);

mav.addObject("pageInfo",pageInfo);

}

return mav;

}

以上代码主要实现了查询所有公告并将其返回给前端界面的功能。如果flag为allResult则首先调用nservice.findall (page,size)方法在数据库中查询所有公告,将该方法返回的数据保存在all对象中再执行PageInfo(all)构造函数,把保存的all对象保存到PageHelper工具的pageInfo对象中,最后将pageInfo对象返回给前端界面。如果flag为partResult则调用nservice.getByLike(keywords,page,size)方法,此方法是对公告的模糊查询,之后将该方法返回的数据保存在all对象中再执行PageInfo(all)构造函数,把保存的all对象保存到PageHelper工具的pageInfo对象中,最后将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—),女,汉族,江西南昌人,讲师,研究生,硕士,研究方向:软件工程。

猜你喜欢

安卓
四大重要升级安卓13正式定档
安卓应用64位的问题
安卓内存巨大为何还要杀后台
安卓12预览版体验
在Windows 11中玩转《安卓》App
安卓11正式发布
让iPhone变安卓,这是真的野
文物表情包
安卓系统的更新换代
封闭的安卓没有未来