APP下载

基于Struts框架的设备管理系统的设计与实现

2010-11-22余军阳

关键词:视图框架管理系统

余军阳

(浙江出入境检验检疫局,浙江 杭州 310012)

随着企业生产规模不断扩大,生产过程中由于各类设备库存、使用、维修、保养、更替频繁等原因,导致各类设备信息经常改变,通过人工的方式对设备管理和数据统计难以及时掌握,且各部门之间对设备协调困难,工作效率降低,企业急需改变这一现状.文章提出了一种基于Struts框架技术的设备管理系统应用设计方案.由于Struts框架是基于MVC模式的理念,具有清晰的业务逻辑和良好的程序开发模型,且基于该模型的设备管理系统应用研究不多.通过对企业设备信息管理需求的分析,开发高效的设备管理系统使得企业能科学地管理各类设备,统一调度提高设备使用效能,给企业设备管理决策提供科学的数据依据.

1 MVC和Struts技术分析

1.1 MVC模式

针对界面设计可变性的需求,MVC模式把交互系统的组成分解成模型、视图、控制3种部件.

1)模型(Model):是真正完成任务的代码.业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果.

2)视图(View):就是用户交互界面,提供模型的表示.视图可以访问模型的读方法,但不能访问写方法,此外,它对控制器一无所知,当更改模型时,视图会得到通知.

3)控制(Controller):从用户接收请求,将模型与视图进行匹配,共同完成用户的请求.控制层不做任何数据处理.MVC组件类型的关系和功能,如图1所示.

1.2 将MVC概念映射到Struts组件

Struts框架是对MVC设计模式的一种实现.从MVC的角度体现了Struts框架中各种组件的功能角色[1],如图2所示.

图1 MVC组建类型的关系和功能

图2 MVC与Sturts映射关系图

Struts框架的处理流程清楚地体现了MVC系统的特点,简单的Struts组件结构如图3所示.Controller ActionServlet处理用户请求,利用配置的ActionMapping对象把请求映射到Action处理器对象进行处理: Action处理对象访问ActionForm中的数据,处理和响应用户请求,调用后台的Bean组件,这些组件封装了具体的业务逻辑,Action处理器对象根据处理结果通知Controller,Controller再进行下一步的处理[2].

2 系统总体需求分析、数据库E-R图设计

2.1 系统总体需求分析

根据企业设备的日常管理、使用和统计情况,设备管理系统结构如图4所示.

图3 Struts框架的组件结构图

图4 设备管理系统功能图

2.1.1 设备库存管理 记录企业设备固定资产的库存数量,以及设备的一般特性、状态、运能等信息,通过对企业设备库存信息的登记和更新,使管理部门能够随时掌握设备资源在企业的配置情况,为设备购置项目的审批提供决策依据.

2.1.2 设备维修管理 具体功能包括:1)设备维修计划和计划的实际执行情况等信息,该信息在整个维修过程中实时输入;2)维修计划输出可以输出大修计划、项修计划、小修计划、二保计划和改造计划;3)维修计划完成情况可以输出大修计划、项修计划、小修计划、二保计划和改造计划的实际执行情况;4)汇总统计包括:按设备类统计维修计划、按单位统计维修计划、设备大修项修汇总表以及由用户自定义条件进行维修汇总;5)由用户定义查询条件,查询用户所需的维修信息.

2.1.3 设备使用管理 对设备完好状态、利用情况、效能进行管理,及时对设备在运行过程中的状况信息进行收集、并通过计算机汇总统计,将设备运行情况以统计表的形式直观地展现在管理人员面前,以辅助企业领导进行有关的决策.设备运行管理包括设备完好率、设备利用率、设备使用情况几部分.

2.1.4 设备保养管理 具体功能包括:1)定义设备保养级别;2)设备保养的项目和内容、保养的日期、保养人或保养单位等信息;3)设备保养期间更换的主要零部件及费用等信息.

2.1.5 用户管理 1)系统对每个用户的详细信息和在岗状态的管理;2)各用户的功能权限实现可动态调整;3)定义各类管理的信息,允许动态添加管理处、部门、科室等信息;4)各用户有明确的管辖范围,实现各功能模块与用户权限相对应.

2.1.6 报表查询 1)不同管理处查询该管理处的所有设备;2)根据自编号、设备名称、设备型号、供应商、设备价格、购买时间、使用范围等设备信息查询设备;3)根据设备类别查询设备情况;4)根据设备保修、保养情况查询设备;5)根据采购合同,供货商,保修,保养计划表,保修、保养完成情况表来查询设备.

2.1.7 系统管理 包括设备管理系统功能模块设置,系统参数的配置,模块排序、添加、删除和修改等功能.

2.2 数据库E-R图设计

通过对系统需求的分析,结合实际开发设计出本次项目的数据库主要表的E-R图,如图5所示.

图5 数据库主要模块E-R图

根据E-R图可知其数据表如下:

1)和用户相关的主要表:用户基本信息表(E_USER)、系统登记表(E_LOG)、设备表(E_ATTRIBUTE)、功能表(E_CLASS).

2)和设备相关的主要表:设备基本信息表格(E_ATTRIBUTE)、使用表(E_USE)、维修表(E_REPAIR)、保养表(E_MAINTAIN).

3 系统关键模块的实现

通过对系统的需求分析和数据库的设计,并结合MVC模型在Struts框架中相应结构应用于设备管理系统的开发.以设备维修功能实现为模型,详细描述Struts框架各层在本次系统中的应用.

3.1 Struts框架中视图(View)应用

视图层主要用于和用户的人机交互,包括设备维修信息输入、显示、修改、删除界面.主要代码如下:E_repair_frm.jsp

对用户输入的信息通过调用JavaScript代码,在用户端进行数据验证,这样可以降低服务器端的压力,并加强对数据的合法性的验证[3].

function CheckForm2() {

if (document.e_repair_frmForm.ZIBIANHAO.value==""){

alert("请填写自编号!");

document.e_repair_frmForm.ZIBIANHAO.focus();

return false;

}

......

return true

}

下面的代码是表单提交到ActionForm,并由相应的Action处理输入的信息.

用户输入信息界面,根据在Form中定义的对应变量名称,通过OnClick事件提交Action接收端.

maxlength="20"/>

class="forumRowHighlight">

size="20"/>

......

下面代码中隐藏变量Mode的值,Mode变量的值通过提交到Action后,然后判断所得到值.如果Mode值是add,在Action模块中就进行添加新维修记录;如果Mode值是view,在Action模块中执行对应ID记录的显示功能;如果Mode值是edit,在Action模块中进行对应ID记录修改操作;如果Mode值是del,在Action模块中就进行删除对应ID的记录.

onclick="return CheckForm2()" />  

  

onclick="javascript:window.history.back();">

3.2 Struts框架中控制(Controller)应用

设备维修模块的Control层由Action、ActionForm两个类来实现.

设备维修模块包括5大部分:判断执行函数、显示记录信息函数、添加新维修记录函数、修改维修记录函数和删除维修记录函数.通过用户端提交的Mode变量的值,判断执行哪个函数.

......

if("add".equalsIgnoreCase(mode)) {

returnexecuteAddAction(mapping, e_repair_frmForm, request, response);

}elseif("view".equalsIgnoreCase(mode)) {

returnexecuteViewAction(mapping, e_repair_frmForm, request,response);

}elseif("del".equalsIgnoreCase(mode)) {

returnexecuteDelAction(mapping, e_repair_frmForm, request, response);

}elseif("edit".equalsIgnoreCase(mode)) {

returnexecuteEditAction(mapping, e_repair_frmForm, request,response);

}else{

returnmapping.findForward("E_repair_fail");

}

}

下面就以添加设备维修记录函数进行举例说明.通过对mode值的判断,如果值为add,先定义变量,用来接受用户端提交的信息,然后进行数据库写的操作,并返回结果.

......

intret = 0;

try{

DB db =newDB(dataSource);

strSql = "insert into e_repair(repair_id, ...,REPAIRED_STATUS) ";

strSql += "values(repair_id.nextval,...,′"+REPAIRED_STATUS+"′)";

ret = db.ExecSql(strSql);

......

}else{

}

......

ret变量用于判断本次数据库操作的结果.如果ret返回的值为1,说明添加记录操作成功;如果ret的值为0,说明本次数据库操作失败,并提示用户.

3.3 Struts框架中模型(Model)应用

模型(Model)层是应用中最重要的一部分, 它包含了业务实体和业务规则.本系统给设备管理系统查询子系统应用创建的模型包括:

1)创建业务对象(Business Object);

2)创建数据库(Equipment Data Base);

3)将业务对象映射到数据库(Object-to-Equipment).

4 结束语

基于Struts框架技术在设备管理系统中的应用,有助于提高代码的重用性、灵活性和安全性[4].该系统已在多家企业应用,通过实际的运行证明它能给企业在设备库存、维修、保养、更替等方面的管理提供科学的数据依据,该系统也可以应用于其他企业的设备管理.下一步将重点研究:1)研究设备的实时运行状态,进而实现对设备运行情况的动态监控;2)统计分析设备运行的实时数据,用于科学的实时调度及提高设备的效能.

[1] 寇毅,吴力文.基于MVC设计模式的Struts框架的应用方法[J].计算机应用,2003(11):91-93.

[2] 孙凌燕,陆保岚,孙健.基于Struts的Web应用框架设计与研究[J].计算机工程,2005,31(8):57-60.

[3] 林上杰,林康司.JSP2.0技术手册[M].北京:电子工业出版社,2004:16-21.

[4] 张峤,孙晓伟.基于Struts框架的ERP系统设计与实现[J].计算机工程与设计,2007,28(9):2148-2153.

猜你喜欢

视图框架管理系统
基于James的院内邮件管理系统的实现
框架
广义框架的不相交性
基于LED联动显示的违停管理系统
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
海盾压载水管理系统
关于原点对称的不规则Gabor框架的构造