基于微信公众平台对资产管理系统的二次开发

2022-02-21 10:42梁民李雪梅
微型电脑应用 2022年1期
关键词:二次开发楼宇运维

梁民, 李雪梅

(中国人民大学,实验室管理与教学条件保障处,北京 100872)

0 引言

中国人民大学实验室管理与教学条件保障处于2012年开发了一套B/S(Brower/Server)架构的资产管理系统,通过桌面电脑,可以实现资产的增、删、查、改以及批量报增报减等功能,方便了资产管理,也给运维工作带来了很大便利。在一线运维工作使用系统的过程中,经常会遇到以下需求:(1)运维现场查询某个资产信息或某类资产信息;(2)运维现场实时更新资产信息,特别是当资产位置发生变化后,第一时间更新资产位置信息。对于需求(1),可以通过手机或者便携式设备,现场操作。但是,由于系统是为PC端设计的,可操作性和易用性以及用户体验不好。对于需求(2),更新资产信息通常有专门的资产负责人来操作,但并不是每个一线运维工作人员都有权限。系统中更新资产信息流程和实际工作有不符合之处,运维现场不能做到第一时间更改相关信息,导致了经常有漏改的现象发生,由此带来了一个资产的实际信息和系统中的信息不符的现象。

资产实际信息和系统中的信息不符的问题可以通过制定相应制度和提高运维人员责任心来尽量解决。但是,在运维现场不能方便地查询资产信息以及系统中更新资产信息流程跟实际工作不符合之处,只能通过对系统的二次开发予以解决。考虑微信公众平台的系统开发能同时适用于Andriod和IOS等移动操作系统,避免开发不同的移动应用程序所带来的新问题,在微信极其普及的情况下[1],借助微信公众号平台,对资产管理系统进行了二次开发,实现了通过微信扫描设备二维码,读取资产信息,并能通过手机或者iPad等移动设备对资产信息进行实时修改,较好地解决了以上问题。

1 需求分析

现有的资产管理系统采用B/S架构,前台主要有资产信息查询、资产信息修改、资产报增报检减等功能。系统后台还能对用户进行权限角色分配。

对系统二次开发后,要求能通过手机或者iPad等便携移动设备在运维现场访问系统,实现资产的查询和信息更改等功能。具体需要满足以下功能:(1)基于移动端的资产信息查询 ;(2)通过微信扫描资产标签二维码识别资产,显示资产相关信息;(3)通过移动端设备进行资产信息更改。另一方面,页面设计要简单简洁,尽可能使用选择框或者下拉菜单,以减少文字输入。

2 功能设计

系统设计方面主要包括系统的权限设计、功能设计以及数据库设计,分述如下。

(1)权限设计

鉴于系统用户仅为本单位运维人员,类型比较单一且用户数比较少,系统设定一个系统管理员,其有最高权限。其他用户关注公众号并被系统管理员审批通过后,系统管理员可在后台分配相应权限,比如扫码识别资产权限,添加维修记录权限,查询资产信息权限以及修改资产信息权限。其中修改资产信息权限仅限于一线运维人员。

(2)资产信息变更功能设计

资产保管人和资产位置,有如下对应关系:某个运维人员作为某个楼宇或者某几个楼宇的资产保管人,其对应关系为一对多;某个楼宇的资产只能有一个资产保管人,其对应关系为一对一。

设定所有运维人员均可对资产信息发起更改,但是必须经过资产保管人确认后,才能在后台更新相关数据。

运维现场通过移动设备对资产信息进行变更的工作流程如下:资产信息变更发起人通过扫描资产条形码发起信息变更申请,系统自动获得资产相关信息,信息变更发起人输入相关信息;信息变更发起人提交申请后,系统会推送微信消息给该资产的保管人进行确认。同时,如果涉及到资产位置变更从而导致变更资产保管人的,也会发送信息给新保管者进行确认。当新旧资产管理人都确认后,资产更新记录才会在数据库中更新,该资产信息变更流程才算结束。

资产信息变更流程图如图1所示。

图1 资产信息更新流程图

(3)数据库设计

现有的资产管理系统,资产表Asset主要有资产号、资产名称、存储位置、领用人、入库时间等字段。其中领用人一般为单位主管领导,平时并不参与具体运维工作。二次开发完成后,要具备运维现场更改设备相关信息功能,结合实际运维工作,数据库中新建一个保管人表Custodian,主要有以下字段:保管人Custodian(varchar);楼宇1 Building1(tinyint);楼宇2 Building 2(tinyint);楼宇3 Building 3(tinyint);……。如果某个Custodian是某个楼宇设备的保管人,其对应的楼宇赋值为1,否则赋值为0。保管人表Custodian如表1所示。

表1 Custodian表

3 二次开发实现

微信是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯的免费应用程序,支持跨运营商、跨操作系统平台通过网络快速发送免费语音短信、视频、图片和文字[2]。微信公众平台(WeChat Public Platform)是腾讯公司于2012年推出的一款给个人、企业和组织提供业务服务与用户管理能力的服务平台。已经形成了一种主流的线上线下微信互动营销方式,有服务号、订阅号和小程序3个类型。通过微信公众平台进行二次开发过程中,用户首先要申请微信公众号,并配置开发环境,设置相关接口,文献[3]有详细描述。接口通过json格式传输数据,为了保证移动端和服务端数据传输相对安全,对接口进行加密传输。整体规范采用RESTful 方式来实施。API与用户的通信协议,使用HTTPS协议,以确保交互数据的传输安全。

对系统的二次开发,前台采用Java、HTML、JavaScript语言混合编写,数据库使用原系统MySQL数据库。

(1)微信服务器与第三方应用服务器的通信连接

建立微信服务器和第三方服务器的通信连接,在通信开始时必须对接入通信请求进行校验,确认通信请求来自微信服务器。如果请求来自微信服务器,则原样回写请求参数内容,此时双方通信成功,否则不予处理,接入失败。

第三方服务器和微信服务器通信校验代码如下[4]。

pubic boolean check(String signature,String

timestamp,String nonce)

{

Step 1

array.sort()

//将tocken timestamp nonce三个参数按照字典顺序进行排序;

Step 2:排序后的字符串拼接成一个字符串,用content存储拼接后的字符串;

Step 3:

MessageDigest.getlnstance(”SHA-1”).digest(”拼接后串”.getByte())

//将拼接后的字符串进行shal加密;

Step 4:

if(”加密后字符串”==signature){

return true;

}

return false;

} //将加密后的字符串与signature进行对比。

如果上述方法返回true值,表明微信服务器和第三方应用服务器校验成功,接下来就可以进行通信工作。否则不能通信,微信公众号接入失败。

(2)扫描条形码识别设备功能的实现

微信公众号开发框架提供了对二维码扫码支持,通过与微信对接,调用微信官方提供的JS-SDK,可以实现有权限的用户通过点击微信公众号页面的按钮来执行条形码扫描器功能。当用户点击页面扫描按钮后,后台调用wx.scanCode函数触发摄像头描器扫描固定资产上面的条码[5],扫描条码后系统根据返回的扫描信息和资产数据库进行匹配,调取相同资产编号(资产编号唯一)的资产详细信息,并进行页面可视化处理,处理后将数据展现在前台页面。

实现扫描条形码识别设备功能的主要代码如下[6]。

document.querySelector('#scanQRCode').onclick

//点击按钮扫描二维码

function(){

wx.scanQRCode({ //调用wx.scanQRCode函数

needResult :1,//默认为0,扫描结果由微信处理,1则直接返回扫描结果,

scanType :[ "qrCode"],//可以指定扫二维码还是条形码,默认二者都有

success:function(res){

var result =res.resultStr;//当needResult 为 1 时,扫码返回的结果

window.location.href =result;//跳转到该页面

}

(3)资产信息变更功能的实现

资产信息变更发起人通过微信公众平台扫描资产二维码识别出设备后,点击“更新资产信息”可以进行资产信息更新。后端主要过程如下。

首先,引用微信JS-SDK文件及调用getJsApiQrode()函数,实现扫描固定资产上面的条形码功能,资产被识别出后,系统自动获取当前资产信息,资产信息变更发起人输入要变更的项如下。

〈div class="but_r"〉〈a href="#" onclick='doSubmitForm()'〉提交〈/a〉〈/div〉

)

资产信息变更发起人提交资产信息变更请求后,系统首先判断资产信息变更发起人是否为资产保管人且不涉及资产保管人变更,若为真,则后台直接更新资产信息。

如果资产信息更新涉及到变更保管人或者资产信息更新发起人非资产保管人,系统自动推送微信消息给原保管人和新的保管人进行确认,发送模版消息给资产负责人进行确认变更资产信息的主要代码如下。

资产信息变更完毕,系统后台变更信息的代码如下。

//修改资产信息

4 应用效果

系统二次开发完成并成功上线运行后,极大地解决了原来系统不能解决的问题,工作人员可在运维一线比较方便地使用系统查询资产设备,并可实时对资产信息进行更改。系统投入使用前,由于不能在运维一线实时更改设备信息,每年学校组织的资产清查工作,资产实际位置和系统中位置符合率不足80%。系统二次开发后,资产实际位置和系统中位置符合率已达98%以上。系统查询界面如图2所示。

图2 系统查询界面

5 总结

实验室管理与教学条件保障处于2012年基于电脑端开发了一套资产管理系统,使用移动设备访问不方便,同时,通过原来的系统在运维一线查询和更改设备信息都不能很好展开。基于微信公众平台,对系统进行了二次开发,扩展了系统对移动设备的支持。系统二次开发完成并上线应用,提高了运维效率,简化了工作程序,提高了信息化程度,对其他高校的资产管理工作的信息化建设工作,也有很好的借鉴意义。

猜你喜欢
二次开发楼宇运维
高速公路智能运维平台
基于物联网的智能楼宇顶层架构设计
通信生产楼宇建设项目造价问题分析
商务楼宇治理中党建融入的逻辑与路径——基于广州S楼宇的观察与思考
智能+时代的新运维
——2019(第十届)IT 运维大会特别报道
浅谈CAD软件二次开发的方法及工具
关于平面设计软件二次开发的分析与探讨
例谈课本习题的“二次开发”
配电线路的运维管理探讨
高层楼宇灭火装备