基于Flex的能源监测管理系统的设计与实现

2015-09-18 01:22新疆师范大学计算机科学技术学院乌鲁木齐830054
现代计算机 2015年15期
关键词:管理系统界面能源

李 萍,曹 卫(新疆师范大学计算机科学技术学院,乌鲁木齐830054)

基于Flex的能源监测管理系统的设计与实现

李萍,曹卫
(新疆师范大学计算机科学技术学院,乌鲁木齐830054)

随着国家能源使用的增加,能源大量减少,为了监控能源的使用情况以及规范能源的合理利用,提出构建基于Flex技术的能源监控管理系统。该系统采用互联网先进的前端框架结合当前流行的后台框架进行开发,在系统开发前期采用面向对象的分析与设计的思想,构建系统的模型。能源监测系统的研发能让政府时刻关注到国家能源的使用情况,对过量使用及不当使用及时报警,为政府提供决策支持,在很大程度上能够节约能源。

能源;Flex;面向对象;模型

新疆师范大学优秀青年教师科研启动基金项目(No.XJNU201420)

0 引言

国家要制定能源政策、加强能源宏观管理、提升节能效果,需要大量详尽的能源基础数据,而要获得这些数据还需要与耗能企业进行信息交互,能源综合管理信息平台就是利用计算机技术与互联网技术来实现政府的这一需求。因此,提出了搭建基于Flex的能源监测管理系统。平台提供的主要功能有:企业能源数据网上填报、能源图表分析、能源数据综合查询、能源项目管理、企业能源管理、企业能源审计、新闻发布等功能。

1 Flex技术介绍

随着Web技术的发展和Web 2.0[1]应用的普及,富客户端技术逐渐进入了人们的视野[2]。Flex就是一个典型的富客户端技术,Flex技术是由Macromedia公司推出的富客户端技术,具有丰富的前端组件。Flex框架是基于组件的开发框架,开发完成后可生成SWF文件,并且能在Adobe Flash Player上运行查看效果,是一种丰富互联网的应用程序[3]。通过Flex技术,开发人员可高效地开发出来丰富漂亮的前端界面,为开发人员节省大量的时间和精力。Flex技术支持跨平台并且支持对系统外观进行自定义,与系统后台的交互方法很多。Flex应用程序框架由MXML、ActionScript及Flex类库构成。用Flex构建的Web应用程序能够有效地将桌面软件的强交互和丰富内容与Web的广度结合在一起[4]。在系统实现时,主要基于Flex的富客户端实现,前台使用的框架有Flex,blaseDS用于与后台交互,parsley用于前台事件、Aop[5]等,后台使用的框架是Spring[6]、Hibernate[7],使用的开发模式是SpringMVC[8]。

2 能源监测管理系统的面向对象分析

2.1能源监测管理系统的需求模型

根据调研以及对用户进行需求分析,自治区工业能源监测管理系统主要涵盖:

(1)用户注册登录。企业用户注册和登录,政府用户登录,企业用户的注册信息需要政府用户的审核。

(2)系统设置。企业用户和政府用户对个人的信息包括密码修改,政府用户可以对系统账号进行管理、对部门信息进行管理、对员工进行管理等。

(3)企业能源数据填报。企业用户对企业的能源数据相关信息进行填报,其中包括基本情况数据,能源消费结构、能源实物平衡、单位产品综合能耗指标数据,产值能耗变化因素,节能目标完成情况,节能目标责任自评价考核,主要能耗设备状况,合理用能国家标准执行情况,规划期内节能技术改造项目,节能项目变更情况。

(4)能源综合数据统计分析。系统通过对能耗情况、消费结构、单耗指标计算、节能量等数据进行统计汇总分析,可自动生成某段时间(可定义)监管区域内相关行业总体用能情况的分析报告,为政府督查全市重点耗能单位节能降耗指标完成情况,科学制定节能监管决策提供多方位、可视化的数据信息查询和决策支持服务。

(5)基本操作。政府用户对企业注册信息进行审批,设置企业报表填报时间,对企业能源指标进行定义,对公司信息进行管理。

通过对系统进行分析构建了系统的需求模型[9],需求模型如图1。

图1 系统需求模型

针对需求模型中的用况,本文给出描述,用况描述中包括很多内容,本节主要是给出用况描述中的主要事件流。

(1)注册。企业端相关操作员进入系统主界面,点击“注册”按钮,进入注册界面,填写完相应的注册信息,并点击“注册”按钮提交注册信息。提交信息后等待政府端的审批,政府端审批通过后会发邮件(发送邮件到所填写的E-mail)通知企业,审批通过后方可登录系统进行填报。

(2)登录。进入系统主界面,输入用户名、密码,点击“登录”,进入系统主界面。

(3)个人信息修改。用户进入系统,在左边导航栏选择“系统设置”,再点击“个人信息”进入个人信息修改界面,填写要修改的信息,点击保存。

(4)密码修改。用户进入系统在左边导航栏选择“系统设置”,再点击“修改密码”进入密码修改页面。

(5)能源数据填报。进入系统在左边导航栏选择“企业能源数据填报”,再点击“企业能源数据填报”进入能源数据填报界面,选择要填报的数据的年份、月份和数据类型,填报相应信息,点击“保存”进行提交。提交完成后关闭当前页面,返回之前的页面刷新,可以看到一月份的报表状态为“已填报”,此时仍可以进行编辑和查看,点击“编辑”可进入进行修改操作,而“查看”不能进行修改操作;如果确认填报无误,便可点击“确认提交”。

(6)能源数据统计分析。在左边导航栏点击能源综合查询的“综合查询”,进入能源统计分析界面,该界面可以按期间、行业、地州以及不同类型进行分析企业的用能情况。例如:这里分析2011年1月份到3月份,增加值能耗表,所有乌鲁木齐市“煤炭”、“电力”和“其他”企业的用能情况,点击“按行业分”或“按地州分”可得到不同的统计分析图。

(7)注册信息审批。在左边导航栏选择“政府基本操作”,点击“企业注册审批”进入注册审批界面,这里会显示当前已经进行注册但是没有通过审批的企业,通过审核后可以进行选择然后点击右上角的“审核通过”按钮即可完成对企业的审批。

(8)能源填报期间设置。点击“企业报表填报期间设置”进入能源填报时间设置界面,双击当前已经定义的年份可以查看或修改已定义的期间。点击右上角的“增加”按钮,可增加新年份并进行期间设置。

(9)能源指标定义。点击“企业能源指标定义”进入界面,界面显示了已经定义的能源指标,可以根据需要点击下方的绿色小加号按钮来添加一条新记录。填写能源指标信息,点击保存。

(10)部门管理。点击“部门管理”进入部门管理界面,界面显示了当前所有部门,可以在右边的操作列对相关的部门信息进行增删改查操作。

(11)员工管理。点击“员工管理”进入管理界面,界面显示了当前系统的所有操作员信息,可以根据需要在下方的操作栏对相关操作员信息进行增删改查。

图2 系统的基本模型图

2.2能源监测管理系统的基本模型

系统的类图是面向对象系统分析时的一个基本模型[10],基本模型是建立在需求模型的基础上,同时是整个系统的面向对象分析和设计的一个核心模型。能源监测管理系统的基本模型如图2。

3 能源监测管理系统的设计与实现

3.1总体架构设计系统总体架构设计如图3所示。

图3 总体架构设计

重点用能企业登录系统将数据按要求进行上报,政府管理人员查看企业上报的能源数据,并可以对这些数据进行统计分析,生成报表,对特殊情况可以及时得到了解,时刻监控到企业的能源使用情况,企业上报的数据统一存放到系统综合数据库中。

3.2系统核心功能设计与实现

(1)企业用户登录

企业用户在登录页输入用户名和密码,点击登录,进入系统主界面。根据不同的权限获得不同的功能模块,实现代码下:

User user=User.currentUser();

IEmp loyee emp loyee=userService.getEmp loyee(user.getId());

AuthorityGroup authorityGroup=null;

if(employee!=null){

authorityGroup=authorityGroupService.get-ModuleIdsByUserId(employee.getId());

user.setEmpId(employee.getId());

user.setEmpName(employee.getEmpName());

IDepartment dept=employee.getDepartment();

if(dept!=null){

user.setDeptId(dept.getId());

user.setDeptCode(dept.getCode());

user.setDeptName(dept.getDeptName());

user.setType(dept.getType());

user.setLevel(dept.getLevel());

user.setLoginDate(new Date());

}

}else{

authorityGroup=authorityGroupService.load (AuthorityGroup.SUPER_PERMGROUP_ID);

user.setEmpId(user.getId());

user.setEmpName(user.getUsername());

}

if(authorityGroup==null){

authorityGroup=authorityGroupService.load (AuthorityGroup.DEFAULT_PERMGROUP_ID);

}

//模块ids

String moduleIdList=authorityGroup.getModuleI-dList();

user.setModuleGroupId(authorityGroup.getId());

user.setModuleIdList(moduleIdList);

//用户存在

FlexContext.getFlexSession().setAttribute("user",user);

if(moduleIdList==null){

return null;

}

String[]moduleIds=moduleIdList.substring(1).split (";");

String purviewList=authorityGroup.getPurviewList();

//55->,1,2,3,4,

Map<Integer,String>purviewMap=new TreeMap<Integer,String>();

//辅助用

Map<Integer,String>purviewMap2=new TreeMap<Integer,String>();

String rangList=authorityGroup.getRangList();

//55->,1,2,3,4,

Map<Integer,String>rangMap=new TreeMap<Integer,String>();

//辅助用

Map<Integer,String>rangMap2=new TreeMap<Integer,String>();

if(purviewList!=null){

generateMap(purviewList,purviewMap2);

}

if(rangList!=null){

generateMap(rangList,rangMap2);

}

for(Stringmodule:moduleIds){

IntegermoduleI=Integer.parseInt(module);

//如查有些没有设置具体权限的,默认为空,默认为有全部权限

purviewMap.put(moduleI,purviewMap2.get (moduleI));

rangMap.put(moduleI,rangMap2.get(moduleI));

}

FlexContext.getFlexSession().setAttribute("purview Map",purviewMap);

FlexContext.getFlexSession().setAttribute(" rangMap",rangMap);

Map<String,Object>map=new TreeMap<String, Object>();

map.put("purviewMap",purviewMap);

map.put("rangMap",rangMap);

map.put("user",user);

returnmap;

(2)能源数据填报

进入系统在左边导航栏选择“企业能源数据填报”,再点击“企业能源数据填报”进入能源数据填选择界面,在报表名称下拉列表选择“基本情况表”,在一月份的操作列点击“编辑”,进入如图4所示填报界面。

填报相应信息,点击“保存”进行提交。提交完成后关闭当前页面,返回之前的页面刷新,可以看到一月份的报表状态为“已填报”,此时仍可以进行编辑和查看,点击“编辑”可进入进行修改操作,而“查看”不能进行修改操作;如果确认填报无误,便可点击“确认提交”。

图4 能源数据填报页面

(3)能源数据查询

在左边导航栏点击能源综合查询的“综合查询”,进入数据查询界面,该界面可以按期间、行业、地州以及不同类型进行分析企业的用能情况。例如:分析2011 年1月份到3月份,增加值能耗表,所有乌鲁木齐市“煤炭”、“电力”和“其他”企业的用能情况,点击“按行业分”或“按地州分”可查出如图5所示,实现代码如下:

String hql="select p.powerTable."+col

+".codeName,p.powerTable."+col

+".id,avg(benQiValue),avg(shangQi-Value)from Power1_1 as p where p.powerTable.year="+year;

if(monthBegin>0&&monthEnd>0)

hql+="and(p.powerTable.month between"+ monthBegin+"and"+monthEnd+")";

hql+="and p.code='"+leiXin+

"'and p.powerTable.dept.id in(select id from Department as d where d.hangYe.id in"+ StringUtils.idStrToIds(hangYeIds)+

"and d.diShi.id in"+ StringUtils.idStrToIds(diShiIds)+

")group by p.powerTable." +col+".codeName,p.powerTable."+col+".id";

List<Object[]>res=getEntityDao().getSession(). createQuery(hql).list();

Map<Integer,List<Object[]>>map=new HashMap<Integer,List<Object[]>>();

if(xianIds!=""){

String hql2="select p.powerTable.diShi.id,p. powerTable.xian.codeName,p.powerTable.xian.id,avg(benQi-Value),avg(shangQiValue)from Power1_1 as p where p.powerTable.year="+year;

if(monthBegin>0&&monthEnd>0)

hql2+="and(p.powerTable.month between"+monthBegin+"and"+monthEnd+")";

hql2+="and p.code='"+leiXin+

"'and p.powerTable.dept.id in(select id from Department as d where d.hangYe.id in"+ StringUtils.idStrToIds(hangYeIds)+

"and d.xian.id in"+StringUtils. idStrToIds(xianIds)+

")group by p.powerTable.diShi.id, p.powerTable.xian.codeName,p.powerTable.xian.id";

List<Object[]>resXian=getEntityDao().get-Session().createQuery(hql2).list();

for(Object[]objects:resXian){

Integer diShiId=(Integer)objects[0];

List<Object[]>ss=map.get(diShiId);

if(ss==null){

ss=new ArrayList<Object[]>();

}

ss.add(objects);

map.put(diShiId,ss);

}

}

List<Map<String,Object>>maps=new ArrayList<Map<String,Object>>();

for(Object[]obj:res){

Map<String,Object>m=new HashMap<String,Object>();

m.put("theName",obj[0]);

m.put("qiJian",obj[2]);

m.put("tongQi",obj[3]);

maps.add(m);

if(xian Ids!=""){

Integer diShiId=(Integer)obj[1];

List<Object[]>dires=map.get(diShiId);

if(dires==null)continue;

for(Object[]oo:dires){

Map<String,Object>m1=new HashMap<String,Object>();

m1.put("theName","#"+oo[1]);

m1.put("qiJian",oo[3]);

m1.put("tongQi",oo[4]);

maps.add(m1);

}

}

}

return maps;

图5 能源数据分析界面

4 结语

为了监控国家能源的使用情况,开发能源监控系统很有必要,本文采用了Flex技术并结合了优秀的后台技术,在进行开发之前,采用了面向对象的思想进行系统分析与设计,构建了系统的需求模型和基本模型。目前系统已经完成开发,并投入到了使用。系统的研发和使用,响应了国家的节能减排号召,也为能源的可持续发展做出一定的贡献。

[1]王伟军,孙晶.Web2.0的研究与应用综述[J].情报科学.2007,25(12):1907~1913

[2]谢佶芸.基于Flex的企业级富客户端系统的研究与设计[D].浙江大学计算机学院浙江大学,2010

[3]陈显军.基于Flex的RIA应用与研究[D].电子科技大学,2007

[4]尹金发.基于Flex和J2EE技术的RIA系统的设计与实现[D].西南交通大学,2008

[5]周磊,王书怀,邢建春,李决龙,杨启亮.AOP技术在管理信息系统中的应用研究[J].计算机应用与软件,2012,29(6):189~195

[6]王昆.Spring框架下Web查询性能优化研究[D].西南交通大学,2009

[7]杜玲玲.基于Hibernate框架的数据持久化应用开发[J].微计算机信息,2008(6)

[8]刘玲.基于Spring MVC的旅游电子商务平台构建[D].复旦大学,2009

[9]印桂生,王宇华.基于本体的需求模型到UML模型转换方法[J].哈尔滨工程大学学报,2012,33(6):735~740

[10]陈娟.基于UML的面向对象的系统分析与设计[D].武汉理工大学,2005.

Energy;Flex;Object-Oriented;Model

Design and Im p lementation of the Energy Monitoring and Management System Based on Flex

LIPing,CAOWei
(School of Computer Science and Technology,Xinjiang Normal University,Urumqi 830054)

With the increase of the national energy use,there makes large reductions in energy.In order to monitor the usage of the energy and specify for energy utilization,presents the construction of energymonitoring and management system based on Flex technology.Uses the advanced front framework and the popular background frame to develop the system.Before developing the system,constructs the system model by using the ideas of the objected-oriented analysis and design.The research on the energy monitoring and management system can make the government concerns the usage of the energy.Also,the system can alarm the improper and excessive use of the energy, which can supply the decision support for the governmentand can save the energy to themost degree.

1007-1423(2015)15-0071-07

10.3969/j.issn.1007-1423.2015.15.018

李萍(1989-),女,湖南株洲人,硕士研究生,助教,研究方向为自然语言处理

曹卫(1986-),女,湖北随州人,硕士研究生,助教,研究方向为自然语言处理

2015-04-09

2015-05-11

猜你喜欢
管理系统界面能源
基于James的院内邮件管理系统的实现
国企党委前置研究的“四个界面”
第六章意外的收获
一种可用于潮湿界面碳纤维加固配套用底胶的研究
用完就没有的能源
————不可再生能源
基于LED联动显示的违停管理系统
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
海盾压载水管理系统
福能源 缓慢直销路
电子显微打开材料界面世界之门