APP下载

基于B/S模式的可自助式计量委托单管理系统的设计与实现

2015-08-02贺建峰杜珂珂曹守军张俊胡杨升张昊任俊香宝媛媛

微型电脑应用 2015年1期
关键词:委托方委托浏览器

贺建峰,杜珂珂,曹守军,张俊,胡杨升,张昊,任俊香,宝媛媛

基于B/S模式的可自助式计量委托单管理系统的设计与实现

贺建峰,杜珂珂,曹守军,张俊,胡杨升,张昊,任俊香,宝媛媛

在计量工作中,委托方及检测方之间主要业务交流是通过委托单的方式来完成的,在过去的计量活动中,委托单基本是由计量检测机构填写和完成。针对委托单业务进行具体分析,设计并实现了一种基于B/S模式的可自助式计量委托单管理系统,可以让委托方自主填写委托单,检测人员审核通过后即可生效。在保证委托单中信息准确的同时,也能够大幅减少计量检测机构的工作量,提高机构工作效率。以Oracle为数据库支撑,基于SSH和ExtJS框架进行代码开发,确保了系统的稳定和高效。

B/S模式;计量;委托单管理;可自助式; SSH框架;ExtJS框架

0 引言

过去,计量检测机构在委托单的管理方面都采用了人工的方式进行管理。而现在,已有很多检测机构从人工方式转变为了基于C/S模式的信息化管理方式,这种转变一定程度上提高了委托信息录入的效率,减少了不必要的人员往来,降低了计量检测的运行费用。

但传统的C/S(客户端/服务器模式)模式,需要针对不同的操作系统开发不同的客户端,开发成本较高,兼容性不佳。客户端程序需要安装在每台机器上,安装工作量较大。系统升级时,每一台机器需要重新安装相应的客户端,其维护和升级成本也非常高[1]。

而且普通的计量委托单管理系统是非自助式的,需要专人完成相关委托单生成操作,生成委托单前需要由检测人员与委托方详细沟通后才能进行,如果有大量的委托单需要生成,就会大大占用检测机构的时间,影响计量检测工作的效率。

本文设计实现的基于B/S模式(浏览器/服务器模式)的可自助式计量委托单管理系统,可以显著改善这两个问题。系统采用的B/S模式,只需在联网环境下,打开浏览器输入网址即可使用,有效地降低了系统的使用门槛和系统维护成本。可自助式设计让委托单位可自行创建和管理委托业务,可以自行打印检验合格证书,大大减少了计量检测机构人员的工作量,降低了计量检测成本,提高了机构工作效率。

1 系统结构分析

本文介绍的基于B/S模式的可自助式计量委托单管理系统可以为计量检测机构以及委托方提供一个基于Web的计量委托单管理平台。该系统既可以作为计量检测机构工作人员创建及管理委托业务的在线平台,还可以让委托方人员自行生成委托单供计量工作人员审核,自行管理已生效的器具检测证书。

该系统包括两个入口:计量机构入口和委托方入口。

计量机构入口包含四个模块:委托单创建模块(计量机构)、未完成委托单模块(计量机构)、已完成委托单模块(计量机构)、委托单位库模块,计量机构可以查看和管理不同委托方的所有委托单,如图1所示:

图1 计量机构入口包含模块

委托方入口包含三个模块:委托单创建模块(委托方)、未完成委托单模块(委托方)、已完成委托单模块(委托方),委托方只能创建和管理与本单位相关的委托单,如图2所示:

图2 委托方入口包含模块

2 系统主要功能设计

为了实现委托方的自助式填单功能,需要为不同的委托单位分配对应的账号和密码。委托方通过单位名称和密码即可以通过委托方入口进入,才可创建并填写委托单。委托方的相关信息需要保存在委托单位信息库中,方便计量人员新增、修改以及删除单位信息,也方便在委托单中直接填写委托方的基本信息。

在计量委托业务中,以委托单的生成最为复杂。委托单包含了计量业务的关键信息,其中有委托业务的基本信息:受检单位、单位详细地址、联系人、联系电话、机构代码、经办人、经办人电话、接件人、受理部门、检测科室、交通费、委托日期、区间日期、所属州市等;还包含了要检定的器具的信息,包括器具名称、证书编号、规格型号、准确度、测量范围、出厂编号、校验人、校验日期、校验费用、检定地点等。

为了保证信息的准确性和有效性,委托单的创建到完成需要经历以下6个过程:

(1)创建:填写委托单基本信息,添加检测器具目录

(2)录入:计量人员检测完毕后,将检测信息录入到委托单中,比如器具的准确度、测量范围等

(3)校核:核对录入信息的准确性和有效性

(4)批准:经过负责人批准后,可以生成检验合格证书

(5)收费:委托方须交付本委托单所产生的实际费用,才可获得检验证书

(6)完成:委托方交费完毕后,该委托单完成并存档,可以在已完成委托单中查询及复制

具体流程图,如图3所示:

图3 委托单的创建到完成

委托方可以自行创建委托单,只要通过计量机构的审批合格后,便可以开始正常的检测流程。

一份委托单创建完成后,便处于未完成状态,在该阶段,检测机构和委托方均可以在未完成委托单模块中查看相应的委托单,不同的是检测机构可以对未完成委托单实行录入、校核、收费、存档操作,而委托方只可以查看该委托单的完成进度。

当一系列检测流程结束后,检测人员可以完成相应的委托单,使其改变为完成状态,之后该委托单便可以在已完成委托单模块中被查询到。检测机构可以在此模块查看已完成的委托业务,委托方则可以自行打印已取得的器具检测合格证书。

对某个固定的企业,需要检定的计量器具的数量、种类、周期是相对固定的,每年检定员所做的检定工作有很大部分是重复工作[2]。在已完成委托单模块中设计的复制委托单功能,可以通过历史或上次委托单形成的企业信息、委托单信息、计量器具信息、原始记录及检定证书信息,快速生产新的委托单和对应编号,重置已经检验过的器具证书状态,满足计量检定的所有需要,减轻检定人员的录入工作量。

3 使用技术及功能实现

本系统使用了Java企业开发平台中较为流行和稳定的开源集成框架SSH(Struts,Spring,Hibernate)作为系统主体结构支撑,Struts MVC进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装。SSH框架提供了统一的开发平台,降低了开发多层应用程序的复杂性及开发成本,同时提供对集成应用程序的支持,具有良好的部署应用和添加目录服务支持的功能,增强了系统的安全机制[3]。

Web页面使用了一个以Ajax技术为基础的富客户端开发框架ExtJS进行创建。Ajax Web程序比传统的Web程序具有更好的交互性,更快的响应速度[4]。ExtJS有着丰富的功能和UI组件,可以与用户实现丰富的互动,可以兼容多平台下的主流浏览器,方便使用者在不同浏览器下的开发。ExtJS还可以实现网页应用的MVC分离构建,实现动态加载页面文件,提高系统运行速度。采用MVC架构在软件进行开发的时候只需要分别开发相应的Model、View、Controller即可。在维护时候一样只需要针对相应的层来进行维护,操作非常简便,成本也比较低[5]。

用户在页面上的操作请求经过SSH框架进行处理,调用指定的Java逻辑业务类,完成相应的功能。数据库则使用了具备高稳定性和多功能性的Oracle进行处理,保证系统的安全、快速和有效性。

3.1 前端表现层实现

委托单业务涉及到大量的数据显示和修改等操作,牵涉到复杂的界面构成。ExtJS可轻松构造出功能强大、界面美观的网页和客户端程序,为解决多个数据表联动查询、更新显示、分页显示以及树状结构显示等复杂界面提供了快捷的途径[6]。使用ExtJS框架的前提是引入其包含的JS文件和CSS主题文件,需要在首页html源码中添加如下代码:

在ExtJS中,能够定义各种组件类,如Window、Grid、Form、Button等,在需要的时候可动态的生成相应的组件实例。例如在委托单位库中,当需要新增一条委托单位的信息时,可以点击新增按钮,这时期望弹出一个包含特定表单的窗口供用户录入信息,可以用如下命令动态生成需要的组件:

Ext.create(‘Ext.window.Window’,{

title:”委托单位信息新增”,

items:[{

xtype:”form”,

items:[ /*需要填写的字段*/]

}]

});

在数据的保存和删除时,经常会需要和后台动态的交互数据,ExtJS中提供了一种比JS中的XMLHttpRequest对象更为方便易用的Ext.Ajax对象,它提供了灵活的配置参数供开发者使用,以下是未完成委托单中一个利用Json数据格式向后台传送委托单ID的例子:

Ext.Ajax.request({

url:‘weiWanCWTD_WanChengWTD’,

params:{wtdid:wtdid},

success:function(){/*成功后操作*/},

faliure:function(){/*失败后操作*/}

});

由于系统不只在局域网内部使用,工作人员还可能在外网使用以处理一些特殊情况。在这时,系统的预加载速度就显得十分重要。虽然ExtJS提供了丰富的前端表现组件,但却造成了其预加载文件体积过大,在网速不理想的状态下加载速度较慢,导致第一次接入系统时等待时间过长。为此,采取了两种方法来减少系统加载时间。

首先,对编写的前端代码进行了一系列精简处理,例如部署前删除大量注释、去除无用的空格及字符等操作。其次,利用ExtJS官方提供的工具对程序进行预编译,筛除掉没有用到的部分组件及特性代码,一定程度减小了库文件的体积。

经过这两种方式的处理,解决了挂载文件过大的问题,外网加载体验得到一定提高。

B/S应用的主要特性便是随时随地的通过浏览器即可使用,但是市面上的浏览器种类繁多,每种浏览器还有多个版本,不同种类的不同版本对于相同JS代码的解析存在差别,所以相同的代码展现在用户面前的实际内容不尽相同。ExtJS为浏览器的兼容性做了优化,但仍不能保证在一些低版本的浏览器上实现全部效果。

为此,在前端代码层面,大量选择通用的函数及方法对浏览器特性进行调用,同一功能通过判定浏览器种类做不同的代码实现,确保对大部分浏览器的良好兼容性。在用户方面,为其推荐并安装符合通用解析标准的浏览器,确保用户得到完整的系统功能体验。

3.2 后端业务逻辑层实现

SSH框架使开发逻辑变得更清晰,产品耦合性降低,能更多的应用面向对象的思想,提高了系统开发的效率。

本系统采用B/S模式的三层架构,即表示层、业务逻辑层、数据层。Structs中的ActionForm对象接收并封装表示层的请求参数,然后通过ActionServlet转发给相应的Action,Action根据请求参数调用模型的业务逻辑方法处理请求,并将处理结果返回给前端页面。

以保存委托单功能的实现为例,说明在SSH框架下,一项功能是怎样从请求到完成的。工作人员在新建委托单界面填写完信息后,点击“保存委托单”按钮进行保存,点击该按钮后,将连接至Structs配置中寻找对应的Action对象,这里Structs中的Action交予Spring管理,所以Structs中配置如下:

value="spring">

class="xinJianWTDAction"

method="{1}">

Sping在配置文件中寻找到该Action对应的bean配置项,实例化并对其进行依赖注入,application_action.xml中配置如下:

class="jlgl.Action.weituodan.XinJianWTD

Action" scope="prototype">

ref="changYongService"/>

实例化后的Action对象根据用户请求中包含的参数寻找到合适的业务处理方法,进行逻辑处理并返回结果。逻辑处理部分代码如下:

public void saveORupdateWeiTuoDan() {

// 返回结果字段

private String jg;

// 委托单重要字段

private String wtdid;

private String wtdbh;

/*逻辑处理代码*/

jg = changYongService.save_one(wtdxxb);

this.shuChu_String(jg);

}

业务逻辑中调用的changYongService实例是通过依赖注入实现的。其中的save_one()方法,依赖于持久层的Hibernate框架,利用Hibernate的ORM(Object Relational Mapping)技术,可以将关系数据库中表的数据映射为对象,保证源码的简练和完全面向对象的风格。

在业务逻辑中,需要对处理不同委托单状态的人员进行权限分配并严格控制。各个检测科室与器具的不同种类相对应,本检测科室只能受理与本科室相关的器具委托单的检测业务,而中心办公室可以查看所有的委托单受理情况,并进行核检及批准等操作,但不可进行新建委托单操作。

为了对不同科室间的权限范围进行区分及功能限制,在数据库为不同科室添加了相应表征字段,在登录后,后端程序将科室及人员信息保存到系统Session中,并返回到前端页面,前端依据这些信息进行相应的功能限制,比如锁定某些按钮及文本框,隐藏部分组件等一系列操作。后端代码随时进行权限监控,一旦有越权请求,将停止执行操作并发出警告。

通过以上措施,成功的解决了业务逻辑中的权限分配及功能划分问题。

3.3 特殊功能的实现

委托单中的器具可在线创建对应的证书模版,工作人员可以修改此模版,并手动填写相关器具检测信息。证书模版文件是存储在服务器上的Excel表格文件,所以系统中就需要实现Excel文件的在线编辑功能。

由于B/S模式的特殊性,浏览器无法直接调用用户系统中的Excel编辑软件。如果要调用本地的Excel编辑软件,必须为浏览器安装相应的插件。经过综合比对,最终选取了PageOffice标准版for Java这一插件实现这项功能。

首先PageOffice能支持WPS和微软Office两种编辑工具,覆盖面广;其次支持SSH开发架构及MVC模式,服务器端无需安装微软Office,兼容性强;其对于Java支持丰富,简化了接口,高效快捷;最后,在线编辑操作功能丰富,方便用户使用操作。综合这些特点,选用此插件完全满足了系统的需求,且Excel编辑功能运行良好。

在计量器具、标准装置以及配套设备的规格参数中,存在有一些专用字符需要填写及显示。这些字符不存在于操作系统的现有字库内,需要人为的造字并添加进自定义字库。

最终采用了微软的专用字符编辑程序生成了自造字库,包含常用化学符号、上标带符号数、下标带符号数、1~10等级符号、上标0~99数字、小写26字母上下标、特殊字符累计共266种字符,并制作了一键安装工具方便系统用户安装及使用。

在特殊字符的插入功能上,利用ExtJS丰富的组件功能设计并实现了菜单式插入悬浮窗。用户需要插入专用字符时,首先将光标放置到文本域内,然后点击专用字符插入按钮,即弹出一个包含所有专用字符的悬浮窗,用户可以点击相应字符进行插入。

4 总结

本文提出了一种基于B/S模式的可自助式计量委托单管理系统。B/S模式可以有效降低使用门槛和维护成本,可自助式设计则大大减少了计量检测机构人员的工作量,提高了计量委托业务完成的效率,降低了检测成本。该系统代码在SSH和ExtJS框架的基础上进行构建,数据库则采用了稳定性和高性能兼具的Oracle,做了大量的兼容性处理和功能改进,充分保证了系统运行的安全性和有效性。但是,仍然尚有一些问题需要进一步深入研究,如ExtJS框架加载速度仍需提升、部分计量特殊字符显示不全等问题。

[1] 侯淑英.B/S模式和C/S模式优势比较[J].沈阳教育学院学报,2007,02:98-100.

[2] 刘勇.红河州计量检测业务监管公共服务平台设计及应用[J].计量与测试技术,2014,03:101-103.

[3] 赵佩佩.基于SSH的电子公文传输系统的设计与实现[D].北京邮电大学,2010.

[4] 任远博.基于Ajax技术的计量管理系统设计与实现[D].武汉理工大学,2012.

[5] 朱存华.商品产品质量计量检测信息在线管理系统的设计与实现[D].电子科技大学,2013.

[6] 张军锋,汪健雄,贾新茹.基于ExtJS框架的数据维护系统设计与实现[J].铁路计算机应用,2010,01:27-3.

The Design and Implement of Self-serviceable System for Management of Metrology Orders Based on B/S Mode

He Jianfeng, Du Keke, Cao Shoujun, Zhang Jun, Hu Yangsheng, Zhang Hao, Ren Junxiang, Bao Yuanyuan
(School of Information Engineering and Automation, Kunming University of Science and Technology,Kunming 650500, China)

In metrology work, main communication between clients and metrology agency is accomplished by service orders, in the past metrology test activities, most of the orders were filled and completed by metrology agency. For the orders launched by clients, the paper designed and implemented a self-serviceable system based on B/S to automatically analyze and transfer the orders to the related department to deal with, which the metrological inspectors can check out and approve the orders. The designed system can guarantee the order accuracy and efficiency and reduce the workload of metrology agencies as well. In addition, the system is developed based on Oracle database and SSH and ExtJS technologies, which ensures the stability and efficiency of the system.

B/S Mode; Metrology; Service Order Management; Self-Serviceable; SSH Framework; ExtJS Framework

TP311

A

2014.11.16)

1007-757X(2015)01-0004-04

国家自然科学基金(No.11265007)

贺建峰(1965-),男,云南昆明,昆明理工大学,信息工程与自动化学院,教授,博士,研究方向:信息化管理与建设,昆明,650500

杜珂珂(1988-),男,山东济宁,昆明理工大学,信息工程与自动化学院,硕士研究生,研究方向:信息管理系统建设,昆明,650500

曹守军(1988-),男,山东日照,昆明理工大学,信息工程与自动化学院,硕士研究生,研究方向:信息化技术,昆明,650500

张 俊(1990-),男,云南昆明,昆明理工大学,信息工程与自动化学院,硕士研究生,研究方向:软件工程,昆明,650500

胡杨升(1993-),男,山西运城,昆明理工大学,信息工程与自动化学院,硕士研究生,研究方向:生物医学工程,昆明,650500

张 昊(1990-),男,江苏南通,昆明理工大学,信息工程与自动化学院,硕士研究生,研究方向:Web开发,昆明,650500

任俊香(1989-),女,山东菏泽,昆明理工大学,信息工程与自动化学院,硕士研究生,研究方向:数据挖掘,昆明,650500

宝媛媛(1990-),女,云南腾冲,昆明理工大学,信息工程与自动化学院,硕士研究生,研究方向:信息化建设,昆明,650500

猜你喜欢

委托方委托浏览器
反浏览器指纹追踪
现代企业审计中委托方诚信建设的重要性
红点视觉传达最佳设计奖
2017 红点设计奖·视觉传达设计
受托加工业务会计核算探析
建设项目合同事项受托回避与合并委托问题探讨
绩效评价在委托管理酒店中的应用
环球浏览器
招标代理中的授权委托——以案说法
委托理财忌保底 投资风险需自负