APP下载

基于GIS的POS机维修信息服务平台

2018-03-13侯海旭周晓慧

计算机与现代化 2018年2期
关键词:服务平台工程师程序

侯海旭,周晓慧

(杭州电子科技大学自动化学院,浙江 杭州 310018)

0 引 言

近几年来随着计算机网络技术的发展,各商业银行相继建立了自己的网络系统,实现了商户POS联网[1],同时银行卡业务也得到了迅速发展。POS设备布放量[2]的快速增长,对商业银行POS设备有效管理维修服务提出巨大挑战。在实际操作中,经常有商铺的POS机在使用的时候出现这样或那样的问题,如线路故障、刷卡反应慢、卡纸等,以至于影响商铺的正常营业,降低了支付效率。在国内POS机后期营运服务的信息化研究中主要存在以下问题:1)缺乏故障处理过程中的服务自动化;2)对于降低客户服务请求和响应时间,提高服务质量方面还不是很到位。基于上述问题,本文设计并实现基于GIS的POS机维修信息服务平台[3],有利于提高办事效率,让整个机具维修过程服务自动化、智能化,业务运行管理规范化,也有利于提高银行在金融行业的竞争力。

1 平台总体业务逻辑概述

本平台是集客户报修、维修人员任务接收、客户反馈为一体的POS机维修信息服务平台[4],有效提高了工作效率,实现了管理流程的标准化和规范化。

图1为POS机维修信息服务平台的业务流程图,系统地描述了从客户报修、技术人员的任务接收和客户反馈等功能的实现流程。

客户通过手持移动端在POS机维修信息服务平台填写申报信息,提出POS机设备维修申请。服务中心人员通过维修信息服务平台查看客户详细信息,把客户当前的申请情况根据各种维修类型和客户所属区域把任务工单分配给区域具体的一线维修人员。维修人员与客户约定的时间进行设备的维修工作,遇见具体设备难以解决的问题,区域二线技术人员提供专业的技术支持。维修过后,维修人员通过手机终端设备将维修相关记录信息反馈到维修信息服务平台。此时客服根据已完成的信息分别向客户致电进行反馈记录。

图1 POS机维修信息服务平台业务流程图

2 POS机维修信息服务平台设计

2.1 技术架构设计

POS机维修信息服务平台采用B/S架构,相比于C/S架构,该结构的软件不需要开发客户端,开发成本相对低,维护更为简单。整个平台在技术架构上总体上分为3层[6]:UI(界面层)、BLL(业务逻辑层)界和DAL(数据访问层)。

该平台前端使用Bootstrap框架[7]和easyUI框架。其中Bootstrap框架主要的优点是功能特别强大,操作比较简单,现在大部分互联网企业开发Web的时候都会用到它的控件。但它的性能不是特别高,在IE8或者更低版本中,页面会出现加载缓慢,对于数据特别多的时候,更为缓慢。而easyUI非常适合前端大数据显示,所以将easyUI与Bootstrap结合起来使用,是一个很不错的选择。

该平台后台使用SM框架(Spring MVC和MyBatis)[8]。SM框架具有轻量级配置,将注解开发发挥到极致,且ORM实现变得更加灵活,SQL优化也变得更为简单。本文平台采用Spring MVC注解的形式进行开发,传统的setter方法注入和构造器注入是需要在配置文件中配置bean属性,而Spring MVC注解形式充分利用Java的反射机制获取类结构信息,减少了配置bean的工作,这样,不仅减少了工作量,而且增加了程序的内敛性,程序员不用为了看一个功能而在代码和配置文件中来回切换。MyBatis作为持久层,不同于Hibernate[5]的全自动化,对不同的数据库需要写不同的SQL,应变能力较强,SQL优化较为方便。

2.2 关键技术及实现方法

平台使用了Shiro认证、缓存技术以及AOP动态代理技术。

Apache Shiro[9]是一个强大的、易用的Java安全框架。它被用作于认证、授权、加密、Session管理。依赖于Shiro简单易懂的API,就可以快速地构建包括手机、大型Web和商业应用。平台在权限验证中设计了ShiroDbRealm类,用于对权限数据库验证,类中提供了doGetAuthorizationInfo方法(该方法是根据用户身份获取授权信息。通过此方法,对于不同身份的用户在登录系统后所显示的菜单树不同)和doGetAuthenticationInfo方法(该方法是对用户判断有没有相应的操作权限)。这样设计后,对于用户访问的URL(已配置以.htm结尾的)地址进行拦截,交由Shiro进行身份验证以及用户登录信息匹配,如果账号密码正确,则进入该用户角色所具备的权限首页界面。

平台中用到的缓存技术是采用注解的形式调用Redis core包中的ReidsTemplate类的方法获取的类对象,对外提供开放的接口CacheService,接口提供了putObj和getObj方法。因此在项目实现的过程中为了减少客户、管理员等对数据库访问的次数,可以采取从缓存中获取的方式获取数据。如果用户需要多次使用数据,可将用户初次查询数据库的数据放入缓存中,调用putObj(String key,Object obj)方法,其中obj为放入的数据对象,key为保存在缓存中的键名,注意key值不能重复,如果重复则会覆盖原来的值。接着用户再次使用数据的时候可以调用缓存方法获取,从而减少了对数据库访问的次数,提高了性能。

AOP[10]是一种面向切面、面向接口、面向方面的横向技术,主要用于事务管理、安全验证和日志管理。本平台中利用AOP技术实现日志管理,利用log4j包下的LogManager类的getLogger静态方法获得Logger类,然后调用Logger类的debug(String message,Object…params)方法用于在控制台查看日志信息,便于在数据交互时检查数据的对错问题,message为显示的信息,params为参数信息。

2.3 业务模块设计

根据研究的主要内容和目标,为了实现具体的维修信息服务流程,按系统的功能划分,建立整个平台的功能模块体系如图2所示。

图2 平台功能逻辑体系结构图

2.3.1 故障公共模板模块

故障公共模板涉及故障现象编码、故障原因编码及服务评价分项编码3方面的内容。其中故障现象编码主要用于客户方上报故障时所选择的POS机机具故障现象。故障原因是维修工程师维修完成后填写的维修反馈,用于以后检查时主要排查的指标。而服务评价分项编码是对维修工程师的一个评价标准,作为维修工程师后期的奖金提成的一个评判。这里,对每一个故障现象和故障原因都有对应的专属行业,每一个故障原因分为4级,这样层次分明便于统计管理和扩展。

2.3.2 地址树模块

地址树模块针对客户方设立,分为通用地址树和自定义地址树,因为对于每一个客户方的每一个建筑物大同小异,所以POS机机具设备的存在位置有些能整体归类,有些需要单独设置。对于能整体归类的位置称为通用地址树,不能整体归类的位置则为自定义地址树。设置自定义地址树更为人性化,维修工程师可以更为方面、快捷地完成维修服务工作。

2.3.3 故障申报模块

故障申报模块是由客户方填写申报信息,需要填写的信息包括所属单位、报修人员、关联地址(通用地址选择,细节地址需要手填补充)、故障现象、服务级别、预约时间。如果该POS机机具以前存在维修历史的话,再次报修的时候可直接选择上次报修的记录进行报修,这样更为快捷。

2.3.4 派单维修模块

在客户方提交报修申请后,客服中心人员会直接看到报修人报修信息,这样,服务中心人员会根据报修信息分区域派单给区域维修工程师,因为每一个区域分配多名维修工程师,所以当一个工程师接单后,其他维修工程师就不能再次接同一单号的维修。

3 基于GIS微信小程序业务设计及路径规划实现方法

3.1 微信小程序业务设计

利用GIS和GPS在服务器[11]上建立客户、商户和设备在地图的位置。设备报修时,可利用微信小程序端定位和导航得出最优路径,进而对报修设备维修。微信小程序业务流程如图3所示。

图3 微信小程序业务流程图

根据GIS(Geographic Information System,地理信息系统)[12-15]构建客户位置、维修工程师位置等地理信息数据库,通过微信小程序端开放的地图方法获取工程师实时的地理位置,根据地图的实体图形数据和坐标数据绘制最佳移动路线,并显示实时的目的地距离,最终将获取的地理位置信息、路线信息上传到后台数据库。

实时定位系统来自小程序开放方法,在手持移动端开启了定位功能后,实时定位系统会根据小程序定时器设定的定位时间间隔,定时的向高德地图API[15]发出定位请求。将请求获得的数据与项目服务端进行交互,实现将当前地理位置实时地提交到项目服务器端,并且在手持终端通过小程序画线方法,实时地画出本次定位的移动轨迹信息,不仅实现了维修工程师在手持移动端的实时查看客户业务信息,及时上传反馈信息,也实现了银行方通过查看当前维修人员的实时位置信息,记录维修工程师的全天工作情况,作为科学评测业务、绩效的依据。

3.2 路径规划实现方法

首先对客户报修所选择的地址进行POI检索[16]。POI检索解析的主要步骤如下:1)通过require方法引入高德地图js文件amap-wx.js;2)通过wx.request url对指定的URL发起Https网络请求获取客户报修地址;3)将success函数返回的数据加载到参数clientPosition中;4)通过onLoad函数将客户报修地址转换为经纬度坐标;5)调用makertap对地址坐标进行标记;6)通过changeMarkerColor函数将标记设为红色。这样,客户报修的地址就在地图上被标记成红色。

实时获取维修工程师位置,主要利用微信小程序开放API中的wx.getLocation方法来获取,其中type参数设置为wgs84,这样返回值为GPS坐标,并使用marker对它进行标记。根据小程序中定时器timer设定的时间间隔定时将返回的GPS坐标通过wx.sendSocketMessage方法发送到项目服务端wxMapAction类中进行业务处理,这样项目服务端就可以实时获取工程师位置坐标,并将坐标存储在服务端。路线规划[17],首先要构造AMapWX对象,并调用getDrivingRoute方法,方法中要对给定的参数起始点origin和目的地destination设定相应的值,方法调用成功后返回值data中包含了路径距离distance及拐点point坐标,然后通过polyline对指定的拐点point折线连接就形成了最优距离导航线。

4 结束语

基于GIS的POS机维修信息服务平台实现了POS机故障处理过程服务自动化,降低了客户服务请求和响应时间。平台设计过程中对每一个故障现象和故障原因都设置了对应的所属行业,这样可以将报修推广到一般设备。因此,本平台的开发更加人性化,可维护性高,具有较高的利用价值。

[1] 邓如燕. 运维系统的流程设计[J]. 信息与电脑(理论版), 2014(1):29-30.

[2] 郭亚文. 国外POS机发展动向[J]. 信息与电脑, 2008(4):28-34.

[3] 徐洪勇. 基于GIS的最短路径算法改进对比研究[D]. 北京:中国地质大学, 2008.

[4] 母俐丽,刘一鸣,刘伟. 适合中小型企业的IT运维系统架构设计[J]. 现代计算机(下半月版), 2012(2):66-69.

[5] 王建涛. 基于Struts_Hibernate构建成都联通电子运维系统[D]. 成都:西南交通大学, 2008.

[6] 段升杰. 浅谈软件三层架构开发[J]. 信息与电脑(理论版), 2010(5):44.

[7] 高榕岭. Bootstrap在前端开发中的优势[J]. 计算机光盘软件与应用, 2015(1):74.

[8] 徐雯,高建华. 基于Spring MVC及MyBatis的Web应用框架研究[J]. 微型电脑应用, 2012,28(7):1-4.

[9] 翁云翔. Java安全框架Shiro在Web中的研究与应用[D]. 武汉:武汉邮电科学研究院, 2016.

[10] 曹晓利,郭顺生. AOP技术及其在J2EE中的动态代理实现[J]. 计算机技术与发展, 2008,18(11):120-122.

[11] 范国闯,钟华,黄涛,等. Web应用服务器研究综述[J]. 软件学报, 2003,14(10):1728-1739.

[12] 吴信才. 数据中心集成开发技术:新一代GIS架构技术与开发模式[J]. 地球科学, 2009,34(3):540-546.

[13] 纪金水. 应用型GIS地理信息系统设计内容和方法[J]. 西北民族大学学报(自然科学版), 2006,27(3):67-71.

[14] 刘永强. 地理信息系统(GIS)的发展与展望评述[J]. 建筑工程技术与设计, 2017(1):1118.

[15] 陈达. 基于高德地图的配电网GIS设计应用[J]. 大众用电, 2017(3):29-30.

[16] 腾讯. 微信小程序API[EB/OL]. https://mp.weixin.qq.com/debug/wxadoc/dev/api/, 2017-05-01.

[17] 高德地图开放平台. 微信小程序SDK开发指南[EB/OL]. http://lbs.amap.com/api/wx/gettingstarted/, 2017-06-21.

猜你喜欢

服务平台工程师程序
《机械工程师》征订启事
打造一体化汽车服务平台
Kenoteq的工程师研发环保砖块
江苏省一体化在线交通运输政务服务平台构建
论基于云的电子政务服务平台构建
青年工程师
试论我国未决羁押程序的立法完善
基于云计算的民航公共信息服务平台
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序