2014 N0 02 Chlna Eduoat1Oll InnovatIon Herald 远程教育研究 某高校车辆管理信息系统的设计与实现① 万春旭 (北京农业职业学院信息技术系 北京 1 02442) 摘要:车辆管理是高校后勤服务中很重要的一部分,它面向全校所有部门,是后勤服务的一个窗口。本文讨论了北京某高校后勤车辆信 息化管理系统的整体架构.功能特色、以及代码实现,重点介绍了数据查询与统计汇总的实现方法。 关键词:车辆管理系统 SSH HashMap 中图分类号:G 6 4 文献标识码:A 文章编号:1 673—9795(2014)01(b)-01 66—03 A University Vehicle Management Information System Design and lmpIementatiOn Wan ChunXu (Beijing Vocational College of Agriculture,Department of Information Technology,Beijing,102442,China) Abstract:Vehicle management is a very important part of the university logistics.It is designed for aIl sectors of the school,is a window of logistics services.This article discusses a Beijing university logistics vehicle information management system’s overall architecture, Features,and code implementati0n,and focuses on the data query and statistical summary of the implementatiOn. Key Words:Logistics vehicle information management system;SSH;HashMap 车辆管理是高校后勤服务中很重要的 一整个车辆管理系统从大功能上分为对 加班补助的依据,行驶里程还可以统计车 外服务和内部管理两大块。对外服务强调 调集约、方便、精确、公正、以及可操作性。 系统的具体功能模块如图l所示。 对外服务模块主要针对系部操作员, 辆真正的任务行程,与车辆的实际行驶里 方便、透明、高效与意见收集。内部管理强 程对照,在一定程度上可以减少“公车私 用”的情况。 统计汇总是系统中很重要的一块,可 以统计指定时间段内车辆信息,包括出车 块,它面向全校,是后勤的一个窗口行 业。车辆管理包括用车申请、车辆调度、司 机管理、成本核算、考核评价等几个方面。 北京这几年为了治理拥堵,不断压缩公务 车的数量,同时高校在每年扩招的形势下, 需要办理的业务却不断地增多,用车矛盾 提供网上的用车申请。用户申请用车时,可 次数、行驶公里数、维修费用、油耗费用、过 非常突出。通过建设车辆管理信息系统,不 以看见当时的所有用车申请和当前可用车 桥过路费等内容。也可以统计司机相关信 但可以简化用车流程,简少人力,提高效 辆,这样用户对申请结果会更多一份理解。 息,包括出车次数、行驶公里数、加时数、用 率,还能让车辆调度变透明,促进用车部门 的理解,化解矛盾,同时,司机工作量精确 化,加班补助、年终考核有据可查,利于集 约化管理,提高服务效率。 同时,系统也提供申请结果查询、用车意见 反馈、部门申请统计汇总等多项功能。 内部管理模块主要包括申请单处理、 户评价等内容。还可以统计每个系部的用 车情况。统计汇总功能促进了对外服务的 透明,对内管理的集约化和公正性。 车辆管理、司机管理、统计汇总几个方面。 申请单处理结果包括:无车、有车和拼车三 1.2车辆管理系统数据库设计 车辆管理系统数据库主要包括:使用 1车辆管理系统设计 1.1车辆管理系统功能模块设计 种情况。车辆完成任务后,需要填写回程 部门表(d e Pa rt m ent)、用车情况表 单,记录行驶里程,用户建议,加时数等信 (carRequest)、车辆信息表(car)、司机信息表 息。行驶里程和加时数两项可以作为司机 (driver)、费用信息表(carFee)五个表。这几 个表之间的关系如图2所示。用车情况表是 数据库的核心,存储信息量大,它关联了其 它五个表,表内存储了所有的用车申请信 息、车辆运行公里数、司机出车信息和加时 运行情况。这种设计可以简化数据查询与 汇总操作,同时也能提高数据存储与查询 速度。 1.3车辆管理系统的技术架构 车辆管理系统依托现有的校园网,在校 园网内运行,平台终端多、地理位置分布广、 系统功能更新快。根据功能需求,车辆管理 图1 车辆管理系统功能模块图 系统采用了基于网络的B/S系统,以B/S模 ①基金项E1:“北京农业职业学院基础研发与示范推广基金项目《北京农业职业学院后勤管理数字化系统开发二期》(编号:XY—YF—ll一 23)成果”。 作者简介:万春旭(1976,8一),女,浙江义乌人,副教授,主要从事JAVA应用开发。 66 中国科教创新导刊 China Education Innovation Herald 远程教育研究 nnovat… …uIoR HeraILd 全。 在页面权限设置方面,系统没有采用 传统的过滤器模式,而是根据系统功能,编 制相应的权限控制代码,再直接嵌入到相 应的页面中。过滤器模式适合于用户类型 简单,权限层级清晰的情况,对于后勤管理 平台中用户类型丰富,权限交叉重叠多的 情况,采用权限控制代码更有灵活性。 (1)用户登录主要代码(LoginSer.JAVA) String uname=request.getParameter (”uname”);//取得登录页面用户名 图2车辆管理系统数据 表1 用车情况表主要结构 l 2 3 4 5 6 字段名 id dpid cid drid destination mil 类型 int int int int String double 说明 主键,自增 外键,部门表主键,非空 外键,车辆表主键,非空 外键,司机表主键,非空 目的地,非空 行驶公里数,非空 String upass:request.getParameter (”upass”);//取得登录页面密码 UserManager um=new UserManager (); //用户管理数据库操作类 int n=um.1ogin(uname,upass)l //n为用户类型,0为错误,其他为相应类型 if(n==0){response.sendRedirect (”LoginSer”); else{ //用户名密码有误 时,再次转向登录页面 7 8 addTime result double int 加时数 结果0:无车,1:有车,2:拼车 式开发的系统,系统升级和维护都很方便。 系统开发语言采用了当前最流行、应用最 广、认可度最高的JAVA语言。JAVA是一种 面向对象的新一代网络编程语言,它可以 在各种不同的机器、操作系统的网络环境 中进行开发。用JAVA开发的程序可以在网 bean.U sers u=(U sers)udao. 车辆管理系统为后勤服务平台的一个 findByProperty(”userName”, uname).get 功能子模块,分为面向系部用户的“系部操 (0),//从库中取出相应的用户信息 作员平台”,和面向后勤车辆管理员的“车 Cookie cookieUid=new Cookie 辆管理平台”。两个平台风格统一,操作方 (”uid”,U.getld0+””); //生产新的 式类似,都采用水平框架结构,主菜单始终 Cookie,保存用户的id 在页面最上端,功能一目了然,操作方便。 COokieUid.setMaxAge(24 60*60); 结构,可以加大页面的水平显示区域,数据 显示完整,操作方便。 络上传输,并运行于任何客户机上,将来也 车辆管理系统信息量大、字段多,采用上下 //设置cookie的有效时间为24/b时 容易移植到手机平台上。系统后台数据库 采用SQLServer,SQL Server是由Microsoft response.addCOOkie(CO0kieUid); //lEcookie放入响应页面 开发和推广的关系数据库管理系统 (DBMS),采用真正的客户机/N务器体系结 构,对Web支持较好,是目前应用最广的数 据库管理系统。 系统平台架构采用SSH(Struct、Spring、 2.2用户登录与权限设计 if(n==1){response.sendRedirect 车辆管理系统隶属于整个后勤服务平 (”admin/main.jsp”);} //类型l, 台,后勤服务平台用户类型和权限设置复 转向管理员页面 杂,一般用户只需根据自己的用户名和密 码直接登录,系统自动选择用户的操作平 else ifn==2){response.sendRedirect (”depart/departMenu.jsp”);}//类型2,转 向系部操作员页面 else if(n==3){response.sendRedirect Hibernate)+Ajax。Struct采用MVC三层架构 方式开发应用系统,三层架构与以前的二 层、一层的架构比,具有数据安全性强、开 台。例如:系部操作员会转向系部操作员平 台,车管员会打开车辆管理操作平台,房屋 发速度快、后期维护方便等优点。Spring是 一管理员就转向房屋管理平台。根据用户类 (”car/RequestDillSer?clpid=menu”);}//类 型设计各种的运行平台,主要考虑到 型3,转向车管员操作页面 整个系统的数据安全性。后勤系统的操作 人员很多是聘用工人,计算机操作能力差, 安全意识弱。这种情况下,把系统平台分割 成多个小块,每块就一个功能的模式, 可以让他们较快学会平台的使用方法,也 可以避免很多的误操作。 车辆管理系统把用户的每次登录信息 1; 类型变量 Cookie[】CS=request.getCookies()l 种依赖注入机制,采用这种机制可以把 个大系统分解成一个一个子系统分别开 (2)车管员权限控制代码(carFilter.jsp) Stnng uname=”##”iint utyDe=一 一发,最后在合成到一起。这种先拆后合的开 发方式,不但可以提高开发效率,还能使系 统具有可扩展性。Hibernate是一个开放源 //初始化用户名和用户 代码的对象关系映射框架,它对JDBC进行 了非常轻量级的对象封装,使得JAVA程序 //取得所有页面中的cookie i f(C S != n u l 1){ 员可以随心所欲的使用对象编程思维来操 保存在cookie当中,有效期244,时。这种设 //在cookie不为空的情况下,完成以下操作 纵数据库。 计主要考虑到日常的办公节奏,现在办公 for(int i=0;i<cs.1ength;i++){Cookie 环境下,基本上是一人一台电脑使用, C=cs[i]; //通过循环,对所有页 (下转1 69页) 2车辆管理系统的实现 2.1系统操作页面设计 一天内免登录可以避免频繁登录,提高工 作效率,同时也能保证系统平台的数据安 中国科教创新导刊 China Education Innovation Herald 1 67 远程教育研究 多个任务。PSP提供了可以进行进度规划的 Gantt图。Gantt图需要把工作任务细化,针 noovoT ̄LE;Ri 缺陷预防、和缺陷排除对于项目的开展甚 些较为典型的案例,寓教干乐,引导学生感 为重要。PSP提供了缺陷记录日志,包括:缺 受规范化带来的区别,增强学生规划、设 陷的类型、缺陷的引入阶段、缺陷的排除阶 计、实现能力的积累,使得学生进入到后期 段等。通过缺陷记录日志,学生可以改进自 的课程设计、毕业设计时,感受规划、设计、 需要一份个人进度表来帮助自己协助完成 得后期发现和改正缺陷的代价更大,因此 戏、数据结构课程等融入在实践中,通过这 对本课题研究的项目案例,可以把每个任 务细化为需求分析、设计、编码、测试等多 个步骤。在每个步骤中,督促学生适当的设 己的程序设计水平,减少程序中缺陷的个 实现规范性带来的变化,实现理论与实践 立检查点,以更好的追踪自己的工作,同一 数,尤其是在后面项目的开发时,借鉴前面 的结合,提高学生的职业技能和综合素质。 时间需要多个任务并行处理时,更需要项 项目存在的缺陷数据,可以尽可能的避免 后期的案例设计已经显示学生编程的效率 目进度计划,以更好的安排时间和进度。 (4)让学生学会管理自己的缺陷。 重复的缺陷,从而达到提高工作质量的效 和编程能力得到了明显提高,引入程序的 果。 缺陷数目也逐渐减少。不但如此,学生的周 活动总结表的数据也显示,学生不但在软 件编程上有了时间规划,在其余课程的实 项目产品在设计时,要求既要满足用 户的功能要求,又必须稳定可靠的工作。对 4项目收获和总结 于使用者来说,最重要的是产品具备的功 PSP的理论知识体系比较简单,但是想 践训练上也有所改善。有助于学生综合能 力的提高。 能。但是功能也只有在产品正确工作时才 真正掌握PSP的工作并能应用于工作学习 能具备,为了让产品正常工作,必须排除产 中,需要大量的项目实践,才可能掌握软件 品中存在的缺陷。在软件程序设计中,丰富 工程的规范,改进工作过程,提高软件开发 参考文献 经验的软件工程师都会存在各种各样的错 的质量和个人的综合能力。对参与PSP案例 [1]毛莺池,程莉,王志坚.浅析个体软件过 误,学生在参与项目实践时也是一样会存 设计与实现的所有学生,要求网上自学PSP 导致的错误、算法设计和实现时存在的缺 求学生在项目开发的过程中遵循PSP的规 程(PSP)[J].计算机工程,2002(1 0). 人民邮电出版社,2001,10. 在很多错误:如需求分析时因为需求不清 的基础知识,老师下发案例任务给学生,要 【2]Watts S.Humphery.个体软件过程【M】. 3]文海英.个体软件过程的原理与应用 陷和错误、程序编写过程中存在的语法错 范要求,完成开发案例。要求学生采集自己 [误、拼写错误、标点符号甚至代码冗余等。 案例设计用的真实数据,累积自己进行设 [J].吉首大学学报:自然科学版,2006 (6). 简单的错误或者缺陷可能导致难以发现和 计、编码、调试、测试等各阶段的时间数据、 4】赵有俊,刘纪敏,范明芳,等.基于PSP互 破坏性的问题,产品中存在的缺陷来源于 缺陷数据等。经过多个案例的反复练习,使 [实现者的疏忽大意和经验欠缺,因此,为了 学生的个人行为、软件开发过程和综合能 力都得到了改进和提高,并形成遵循PSP要 在案例设计中,将趣味编程、编程游 动案例教学的研究与设计….计算机教 育,2013(11). 提高软件产品的质量,应该考虑如何管理 有可能会导致程序模块之间相互影响,使 自己程序中可能存在的缺陷,缺陷的存在 求的开发习惯。(上接1 67页) 面中的cookie进行判断 //如果找到了名为“utype”的cookie, //当从cookie中取到的用户类型不为 超级用户或车辆管理员时,要求重新登录 操作性。Spring技术实现了模块间的相互依 赖,可以分头开发,最终合成,这些技术对 else{if(utype!=1&&utype!=3) 大系统的开发非常实用有效。 { request.setAttribute(”INFO”,”请您先 HttpServletResP0nse resp = 就把值取出保存在utype中 if(”utype”.equals(c.getName0)){if(c. (C.getValue0);}} //如果找到了名为“uname”的cookie, 参考文献 [1]王苏,万春旭,张文静.在Linux下开发 办公教学和田径运动会管理平台【J】.北 京农业职业学院学报,2007(2):33—36. [J].信息与电脑理:理论版,2001(9). [3]万春旭.十字链表排序法模型的构建. 软件导刊,2009(4). [4]AngeleJ,Boley H,Bruijin J,et a1.Web getValue()!=nul1){utype=new Integer 以车管员或超级用户身份登录!”); (HttpServIetResponse)response{ common/noPermission.jsp”).forward 就把值取出保存在uname中,同时进行汉字 编码处理 request.getRequestDispatcher(”../ [2]万春旭.某高校后勤服务平台的搭建 if(”uname”.equals(c.getName0)){Stifng (request,response)}}} temp=C.getValue(); uname=U RLDecoder.decode(temp。 ”gbk”);}} //当uname¥llutype还是原始状态,表明 cookie中用户信息已过24d,时的时限,需重 新登录 3 结语 信息管理最注重的按需定制,本文论 述的车辆管理系统就是作者为本单位后勤 量身定制的,有些功能需求可能不具有普 rule language[EB/OL].http://www. w3.org/Submimion/WRL/,2005—09- 09. 遍性,但系统的技术架构、平台运行方式、 【5】Berners-Lee T,Hendler J,Lassila O. The semantic Web[J].The Scientific if(uname.equals(”##”)l lutype=: 系统的界面设计有一定的推广价值。系统 1){ HttpServletResPOnse resP = 开发过程中,SSH+Ajax的技术架构节省了 很多的时间,其中的Hibernate技术解决了 数据表多、字段丰富,书写SQL代码麻烦的 问题。Ajax技术的应用,可以提高程序的可 American,2001,284(5)34-43. (HttpServletResponse)response; resp.sendRedirect(”../LoginSer”)}} 中国科教创新导刊 Ohina Education Innovation Herald I69