国家电力设备资源管理系统的设计与实现 刘培峰 (河北科技师范学院 工商管理学院,信息管理与信息系统专业 1202 班)
指导教师:许伟丽 摘 要:电力设备是电力生产企业进行生产活动的重要物质技术基础。设备的管理水平、利用效率都会对电力生产企业的运营和管理带来直接的影响。文章通过介绍课题的背景、意义以及国内外研究现状,指出目前电力公司采用人工方式管理设备存在的问题,从而指明建立电力设备管理系统的必要性和紧迫性。在此基础上,严格按照 GBT 8567-2006 规范和软件生命周期的六个阶段对系统进行分析、设计和开发。最后,在开发完成后通过一部分核心代码和运行界面对软件进行说明。
关键词:电力设备;资源管理;Strust;MVC 1 绪论 1.1 课题背景 在这个时代,一个企业现代信息技术水平的高低,将成为企业竞争力强弱的重要标志。只有迅速掌握好互联网信息技术,按现代的管理方法管理企业的物流、和信息流,实现企业管理信息化 [1] 。只有这样才能全面提升企业资源配置水平,提高企业的运行效率。
21 世纪是科技信息时代,陈旧的管理模式不是适应新时代的要求,它存在着管理效率低下、记录容易出错等一系列缺点。对于以上的种种缺点,会对企业的经济效益差生很大影响,增加了企业运营成本,降低了企业的生产力。
1.2 研究意义 为了使设备管理人员更好地知道设备的情况与设备维修人员更好地对设备进行检修和校准,由此开发设备管理系统,使得设备各种记录实现计算机化,脱离无纸化,并且数据化。
2 可行性分析 2.1 社会可行性 国家电力设备资源管理系统主要目的是对电力公司的电力设备进行管理,并且严格按照国家法律法规来进行研究和实践,并无法律和政策方面的限制。
2.2 技术可行性 本系统采用的是 MySQL、JSP 和 Java 开发,Windows 10 Professional 操作系统。由于 Java、JSP功能强大,而 MySQL 灵活并且易维护,在开发方面具有容易理解、开发速度快的特点,以及这些技术大量的实际应用,所以 Java、MySQL、JSP 是开发设备管理系统的最好选择 [2] 。
2.3 操作可行性 目前,大多数的计算机都能运行本系统。在系统开发前,进行了充分的用户调研,开发的系统操作简单、易于上手、容易理解,并且系统的界面简单,提示的信息完整,由相关人员进行简单指导就能够方便的操作本系统。
3 需求分析 3.1 技术需求 系统在技术上要求:
(1)遵循统一命名规范、编码规范、用户界面规范、接口以及程序设计规范 [3] ; (2)系统整体结构采用 B/S 架构模式,增强系统的易操作性,降低系统维护 [4] ;
(3)系统遵循行业规范,采用 J2EE 平台架构。
3.2 业务需求
本系统有很多功能模块,由于篇幅有限,不能将每个模块在此进行分析,所以文章只将几个重要的模块进行分析。
3.2.1 系统首页 (1)主题说明 系统首页包含两个部分:系统登录页面和登录系统后的首页。
(2)功能要求 ①登录时输入的密码为不可见。
②首页有退出系统链接,重新登陆和返回首页超链接。
③登陆后的首页左侧是系统菜单,上部是系统名称,主体部分进行系统信息的显示。
3.2.2 用户管理 (1)主题说明 用户管理主要用来维护和更新查询系统内部使用人员的个人资料信息,以及用户角色分配调整。
(2)功能要求
①将所有的用户进行列表显示,对不同的行的用户进行编辑和删除。
②可根据用户名进行用户查询,可以模糊查询。
③删除时提示是否确认删除。
3.2.3 数据字典 (1)主题说明 数据字典对系统字段进行统一维护 (2)功能要求
①系统管理员可对数据字典组进行维护,编辑数据字典组。
②数据字典使用 AJAX 与系统进行异步交互。
③可以添加数据字典的项,同时添加数据字典的值。
3.2.4 站点运行情况 (1)主题说明 主要用来控制管理站点的运行情况,包括站点的故障类型,故障时长,处理状态等 (2)功能要求
①查询结果列表显示在查询条件下方。
②可对查询结果进行编辑和删除。
③站点名称做成超链接,点击后进入站点运行情况详细信息页面。
3.3 性能需求 3.3.1 运行环境需求 (1)系统运行服务器选择稳定安全高效的 UNIX 操作系统。
(2)Web 开发服务器采用 Tomcat,上线采用 WebLogic/WebSphere。
(3)数据库服务器采用 MySQL,上线采用 Oracle 或者 SqlServer。
3.3.2 操作需求 (1)开发的系统应简单,灵活,可操作性强。
(2)系统采用 B/S 架构,使得通过浏览器即可访问系统操作,让工作人员非常方便查看系统内的数据。
4 系统结构化分析建模 4.1 软件功能模块分析 依据此需求分析对系统的功能模块进行详细的分析,为以后的系统设计阶段做好准备工作。如表 1 所示。
表 1 功能模块分析 4.2 业务流程 4.2.1 系统主 Portal 业务流程 用户成功登录系统后,登陆后的首页左侧是系统菜单,上部是系统名称,主体部分进行系统信息的显示。如图 1 所示。
图 1 系统主 Portal 业务流程图 4.2.2 用户管理业务流程 浏览器访问系统主Portal初始化查询用户验证功能菜单系统提醒视图数据访问模块浏览器访问调用调用用户权限、系统相关提醒等数据返回控制流数据流业务功能模块 系统首页 系统首页 用户登陆后的主页面 设备管理 设备信息管理 对设备的基本信息的管理 设备校准管理 对设备的校准周期和时间进行管理。
设备检修管理 对设备的检修周期和时间进行管理。
设备购置计划 对购置计划进行管理。
站点设备 运行管理 站点基本信息 对监测台各个站点的基本信息进行管理。
运行情况 主要用来控制管理站点的运行情况。
维护情况 对站点维护计划、故障处理等维护情况的管理。
监测台 建筑管理 监测台建筑管理 对监测台的房屋建筑信息进行管理。
系统管 理模块 系统管理 用户管理 对系统内各种用户的管理。
角色管理 对系统内各种角色的管理。
系统设置 对系统数据字典的管理。
用户管理主要用来维护、更新和查询系统内部使用人员的个人资料信息,以及用户角色分配、调整。如图 2 所示。
图 2 用户管理业务流程图 4.2.3 系统管理业务流程 系统设置主要用来更新维护系统一些静态信息,这些静态信息在数据字典中维护。如图 3 所示。
图 3 系统管理业务流程图 4.3 数据流程 根据前面系统业务流程的分析,分别得出系统的顶层数据流图和一层数据流图。
(1)系统顶层数据流图如图 4 所示。
图 4 系统顶层数据流图 用户管理业务模块编辑用户信息删除用户信息视图数据访问模块调用用户权限、系统相关提醒等数据控制流数据流查询用户信息权限验证系统管理业务模块添加数据字典项编辑数据字典项视图数据访问模块调用用户权限、系统相关提醒等数据控制流数据流权限验证国家电力设备资源管理系统用户用户设备信息用户信息计划数据系统数据库用户信息设备信息计划数据报表设备信息数据导出计划数据统计信息检修提醒验收提醒
(2)系统一层数据流程图如图 5 所示。
图 5 系统顶层数据流图 5 国家电力设备资源管理系统的设计 5.1 系统功能模块设计 系统统计信息计划数据数据记录P1数据分析D1
设备表 D2
用户表 D3
维护计划表 D4
维护记录表 D5 数据字典表P4查看阅览D6 建筑信息表 D7 图纸资料表P2数据加载用户系统数据库统计信息报表设备信息站点信息用户信息审批流转管理审批流程管理申请模版管理起草申请待我审批我的申请查询系统管理用户管理角色管理待办事宜数据字典维护检测台建筑管理站点设备运行管理维护情况运行情况站点基本信息技术设施维护管理技术设施维护管理仪器设备管理设备校准检修设备购置计划国家电力设备资源管理系统
图 6 系统功能模块图 为了更清晰的理解整个系统的功能结构关系,由以上的业务流程图和数据流图,完成系统的功能模块图如图 6 所示。
5.2 数据库表设计 (1)数据库逻辑结构设计 数据字典(主键 ID,数据类型,数据项 code,数据项 value); 申请模版表(主键 ID,名称,流程定义 Key,模版文件存储位置); 维护计划表(主键 ID,监测台 ID,当前时间,维护内容,备注); 设备较准检修表(主键 ID,设备 ID,是否校准,检修日期,是否检修,记录描述,备注,); 文件上传表(主键 ID,附件工程 ID,所属模块,文件名,文件路径,上传时间,备注)
导入导出字段表(所属模块,导出名称列表(中文)用“#”分开,导出字段名称(字段名)用“#”分开,未导出名称列表(中文)用“#”分开,未导出字段(字段名)用“#”分开); (2)数据库物理结构设计 为对系统作进一步分析和设计,我们根据系统选用的数据库将逻辑结构设计转换成数据模型,并对数据模型做严格的评价。
本系统数据库表如下:
表 2 数据字典表
字段名称 数据类型 主键 是否空 说明 SeqID INT Y N 主键 ID Keyword VARCHAR(20) N Y 数据类型 DdlCode INT N Y 数据项 code DdlName VARCHAR(50) N Y 数据项 value IsDelete VARCHAR(10) N Y 是否删除,0 表示未删除 表 3 申请模板表
字段名称 数据类型 主键 是否空 说明 id long Y N 主键 ID name varchar(500) N Y 名称 processDefinitionKey varchar(500) N Y 流程定义的 key path varchar(5000) N Y 上传的模板文件的存储位置 IsDelete VARCHAR(10) N Y 是否删除 表 4 维护计划表
字段名称 数据类型 主键 是否空 说明 PlanID VARCHAR(50) Y N 主键 ID JctID VARCHAR(50) N Y 监测台 ID OccurDate DATETIME N Y 当前时间 MainContent varchar(500) N Y 维护内容 表 5 站点维护计划表 字段名称 数据类型 主键 是否空 说明 PlanID VARCHAR(50) Y N 站点维护情况,主键 ID StationID VARCHAR(50) N N 站点 ID,主键 ID JctID VARCHAR(50) N Y 所属单位 code(对应数据字典)
OccurDate DATETIME(50) N Y 计划时间
MainContent VARCHAR(500) N Y 内容 Comment DATETIME(50) N Y 备注 CreateDate VARCHAR(10) N Y 创建时间
表 6 设备校准检修表
字段名称 数据类型 主键 是否空 说明 seqID INT Y N 仪器校准,主键 ID DevID VARCHAR(50) N Y 设备 ID IsAdjust VARCHAR(10) N Y 是否校准,0 未校准 1 已校准 AdjustDate DATETIME(50) N Y 校准日期 OverhaulDate DATETIME(50) N Y 检修日期 IsHaving VARCHAR(50) N Y 是否检修,0 未检修 1 已检修 Record VARCHAR(500) N Y 记录描述 Comment VARCHAR(500) N Y 备注 IsDelete VARCHAR(10) N Y 是否删除,0 表示未删除 表 7 文件上传表 字段名称 数据类型 主键 是否空 说明 SeqID INT Y N 主键 ID
ProjID VARCHAR(50) N Y 附件的工程 ID(所属单位)
BelongTo VARCHAR(50) N Y 所属模块 1-0,2-0(图纸类别)
FileName VARCHAR(50) N Y 文件名 FileURL VARCHAR(1000) N Y 文件路径 ProgressTime VARCHAR(20) N Y 上传时间 Comment VARCHAR(50) N Y 备注 IsDelete VARCHAR(10) N Y 是否删除 CreateEmpID VARCHAR(50) N Y 创建人 CreateDate DATETIME N Y 创建时间 表 8 导入导出字段表 字段名称 数据类型 主键 是否空 说明 BelongTo VARCHAR(10) Y N 所属模块(如 1-0,1-1,2-1 等)
ExpNameList VARCHAR(500) N Y 导出名称列表(中文)用“#”分开 ExpFieldName VARCHAR(500) N Y 导出字段名称(字段名)用“#”分开 NoExpList VARCHAR(500) N Y 未导出名称列表(中文)用“#”分开 NoExpName DATETIME(500) N Y 未导出字段(字段名)用“#”分开 6 国家电力设备资源管理系统的前端实现 6.1 首页实现
首页(如图 7)模块包括 3 个主要的部分,采用内嵌框架技术。位置分别为上、左、中。
(1)上部的实现 上部包含两大部分内容:网站标题;菜单。菜单部分就是一系列的超链接,用户登录后看到的是系统时间、用户名、返回首页和退出系统。
(2)左部的实现 左部是系统主要的功能菜单,分为两级菜单,使用 JavaScript 和 Strust 的标签完成菜单的显示。
(3)中部的实现 中部是本系统的主要部分,用于对系统所有的信息进行显示和操作。
图 7 系统主 Portal
6.2 系统管理模块 系统管理模块是本系统的重中之重,可以说是整个系统的安全中心。以下重点介绍本模块。
(1)用户管理(如图 8) 用户管理模块可以对系统内的人员进行统计,形成统计报表,方便企业领导进行人员的统计。系统中用户数据的添加有系统管理员操作。
图 8 用户信息管理
(2)数据字典(如图 9) 数据字典对系统内字段进行统一维护。在系统内各个模块中的下拉列表、单选以及多选都会使用到数据字典中的数据字段,使系统更加规范化。
图 9 数据字典维护
7 国家电力设备资源管理系统的后台实现 7.1 系统总体描述
本系统架构采用 J2EE 三层开发体系架构,使用 Stuts+Spring+Hibernate 的技术框架。从系统整体框架设计上,需要重点达到以下三个要求:
(1)前瞻性:应对需求的变化。
(2)整合性:整合各个子系统的流程和数据。
(3)可扩充性:面向未来。
7.2 处理流程(结构图)
系统的处理流程如图 10 所示。处理流程说明:
(1)表示层:(表示层也就是客户终端)
表示层对数据模型中包含的数据进行显示。当用户对系统进行请求,系统返回数据时,此层将返回数据显示给用户。
(2)业务逻辑层:(中间层)
对用户的请求动作进行控制。当用户将请求发送到系统中时,系统通过控制层将用户不同的请求发送到相应的处理程序进行处理。
(3)数据库访问层:(底层)
数据访问层中包含数据模型,数据模型将用户的请求数据或系统返回的数据进行封装,用于在业务层进行处理货视图层进行显示。
图 10 系统处理流程 7.3 系统实现核心代码 7.3.1 权限捕获拦截器 此段代码是系统开发阶段用于自动捕获系统权限(访问路径)的拦截器,用于系统上线后的权限控制。在系统上线后,此拦截器需要关闭。
public class CatchUrlInterceptor implements Interceptor {
/**拦截请求路径,与数据库进行对比,向数据库中添加权限*/
public String intercept(ActionInvocation invocation) throws Exception {
ActionProxy proxy = invocation.getProxy();
String ns = proxy.getNamespace() ;
String actionName = proxy.getActionName();
if(!ValueUtil.isValid(ns)|| ns.equals("/")) {
ns = "" ;
}
String url = ns + "/" + actionName ; 业务逻辑层 (访问数据库,为表示层提供数据)
数据访问层 数据库服务器 表示层 客户端 (浏览器/IE)
输入数据, 显示数据 Web 服务器
ServletContext sc = ServletActionContext.getServletContext();
ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(sc);
IElecRightService rs = (IElecRightService) ac.getBean(IElecRightService.SERVICE_NAME);
rs.appendRightByURL(url);
return invocation.invoke();
} } 7.3.2 密码加密 用户的密码是十分重要的,好的加密方法能保证用户密码不被泄露。
此段代码是在 MD5 技术的基础之上进行改造优化,使加密后的数据更加安全,加密效率更高。
public final class PwdEncrypt {
public static String getDataByMD5(String src){
try {
StringBuffer buffer = new StringBuffer();
char[] chars= {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] data = md.digest(src.getBytes());
for(byte b : data){
buffer.append(chars[(b >> 4) & 0x0F]); //高 4 位
buffer.append(chars[b & 0x0F]); //低 4 位
}
return buffer.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
} } 7.3.3 权限计算 本系统采用二进制计算的方式进行权限的控制和判断,以此来提升系统运行效率和系统安全性。
/** 计算用户的权限总和 */ public void calculateRightSum() {
int pos = 0;
long code = 0;
for (ElecRole role : roles) {
// 判断超级管理员
if ("-1".equals(role.getRoleValue())) {
this.superAdmin = true;
roles = null;
return;
}
for (ElecRight r : role.getRights()) {
pos = r.getRightPos();
code = r.getRightCode();
rightSum[pos] = rightSum[pos] | code;
}
}
roles = null; } /**
判断用户是否有指定的权限 */ public boolean hasRight(ElecRight r) {
int pos = r.getRightPos();
long code = r.getRightCode();
long ret = rightSum[pos] & code;
return !(ret == 0); } public static boolean isValid(String str) {
if (str == null || "".equals(str.trim())) {
return false;
}
return true;
}
/** 判断集合的有效性*/
public static boolean isValid(Collection col) {
if (col == null || col.isEmpty()) {
return false;
}
return true;
}
7.3.4 权限过滤 本系统使用 Strust 的拦截器进行权限的拦截判断,配置灵活。
/**
* 权限过滤拦截器
*/ @SuppressWarnings("serial") public class RightFilterInterceptor implements Interceptor {
public void destroy() {
}
public void init() {
}
@SuppressWarnings("rawtypes")
public String intercept(ActionInvocation invocation) throws Exception {
BaseAction action = (BaseAction) invocation.getAction() ;
ActionProxy proxy = invocation.getProxy();
String ns = proxy.getNamespace();
String actionName = proxy.getActionName();
if(ValueUtil.hasRight(ns, actionName, ServletActionContext.getRequest(), action)){
return invocation.invoke();
}
else{
return "no_right_error" ;
}
} }
7.3.5 设备校准检修数据查询 优化数据库性能的一个简单有效的办法是尽可能减少对数据库操作。使用联合查询语句,将多条 Sql 合并为一条语句,由此减少对数据库的操作。下面是本系统的一个例子,系统中几乎所有的数据库操作都使用此种方法,以此来提高数据库性能。
SELECT o.stationid, a.ddlname, o.attributionground, o.stationcode, o.stationname, c.ddlname, o.contacttype, o.jcfrequency
FROM elec_station o
LEFT JOIN elec_dictionary a
ON o.jctid = a.DdlCode
AND a.Keyword = "所属单位"
LEFT JOIN elec_dictionary b
ON o.jctid = b.DdlCode
AND b.Keyword = "站点类别"
WHERE o.jctid = ?
AND o.stationname
LIKE "%?%"
AND o.stationcode = ?
AND o.stationtype = ?
AND o.contacttype
LIKE "%?%"
AND o.attributionground
LIKE "%?%" 8 系统测试 8.1 测试目的与目标 在软件初步开发完成后,接下来的一步是将系统移交给软件测试人员,让测试人员对系统进行
完全的测试,尽可能找出系统中存在的 Bug,并记录下来,形成测试报告交给软件开发人员。而开发人员就依此报告对系统的 Bug 进行修改。
8.2 测试用例(如表 9) 测试结果表明,本模块的业务逻辑设计及系统的开发是正确的。
表 9 登入系统测试用例 结论 本系统的开发严格按照 GBT 8567-2006 规范和软件生命周期的六个阶段进行,使用功能强大的集成开发环境 MyEclipse 为开发工具和轻量级数据库 MySql 完成此系统的开发。此系统主要对电力企业的设备、人员、建筑以及一些购置、维修计划进行管理。最后,为了使系统更加人性化和自动化,又使用 JBPM 技术开发了审批流转模块。
本系统的开发意在帮助电力企业提升运营效率,降低运营成本,进行信息化建设,使企业的管理更加规范化,人性化。
致谢:感谢许伟丽老师在百忙之中对我的论文进行指导。从开题报告,到最后的论文终稿,老师对论文的每一个环节严格把关,对于撰写论文过程中的每一个问题都给予耐心指导。在此也感谢大学四年中,每一位老师给予的帮助。
参考文献:
[1] 邵培基.管理信息系统(第二版)[M].北京:知识产权出版社,2012,35-48. [2] 杨帆.配电网电力生产管理信息系统[J].电力技术资讯,2013,12:177-178. [3] 陈铁森.电力企业安全上生产理信息系统的应用[J].企业技术开发,2012,01:39-40. [4] Diego Malagueta. Potential and impacts of Concentrated Solar Power integration in the Brazilian electric power system[J].Renewable Energy.2014,68:57-61. 杨浩.广东电网公司生产管理信息系统实用化评价研究[J].广东电力,2010,04:29-34.
The design and implementation of the National electric power equipment resources management 系统模块 系统登录模块 测试目的 测试系统登录模块的开发是否正确 测试数据 登录名:1111 登录密码:1111 测试内容 操作描述 数据 期望结果 实际结果 测试状态 1 输入用户姓名,按“登陆”按钮。
用户姓名:1111, 密码为空 显示警告信息“用户名或密码误!” 显示警告信息“用户名或密码误!”
与期望结果相同 2 输入密码,按“登陆”按钮。
用户姓名为空,密码:1111 显示警告信息“用户名或密码误!” 显示警告信息“用户名或密码误!”
与期望结果相同
3 输入用户姓名和密码,按“登陆”按钮。
用户姓名:1, 密
码:1 显示警告信息“用户名或密码误!” 显示警告信息“用户名或密码误”
与期望结果相同
4 输入用户姓名和密码,按“登陆”按钮。
用户名:1111,密
码:1111 正确登入到会员操作界面 正确登入到会员操作界面
与期望结果相同
system PeiFeng Liu (Class 1202, Information Management and Information System, College of Business Administration, Heibei Normal University of Science & Technology)
Supervisor: WeiLi Xu Abstract: Electrical equipment is the important material and technological foundation of electrical manufacturing enterprise in production activities.Equipment management level and the using efficiency of electrical manufacturing enterprise have direct impact on electrical manufacturing enterprise`s operation and management .The article through the introduction of the background, significance of topics and research status at home and abroad, points out that the current problems existing in the electric power company using artificial to manage equipment, so as to indicate the necessity and urgency of establishment in the power equipment management system .On this basis, in strict accordance with the GBT 8567-2006 specification and the six stages of software life cycle on the system analysis, design and development.Finally, after the completion of development ,I explained the software through the part of the core code and the running interface.
Keywords: Power equipment;Resource Management;Strust;MVC
相关热词搜索: 电力系统 开发 设计