1、 毕业设计(论文) 题目名称:HIS系统的设计与实现 院系名称: 班 级: 学 号: 学生姓名:xxxx 指导教师: 2016 年 5 月论文编号: HIS系统设计与实现Design and Implementation ofthe Hospital Information System 院系名称: 班 级: 学 号: 学生姓名:秦向红 指导教师: 2016 年 5 月中文摘要随着全球数字信息化时代的到来,互联网已经深深地扎根进人们的日常生活中。二十一世纪,信息技术的快速发展,也为医疗卫生行业的信息化实现带来了新的机遇和挑战,如同各行各业正在发生的巨大变化,医疗行业同样也在进步、发展、完善和优
2、化。未来的医院必定会实现医疗现代化、管理科学化、建筑智能化、服务人性化、环境优美化这一美好前景。这一美好前景的实现必然离不开现代信息技术的支持和应用,离不开互联网技术的建设和发展,这是时代的使命、历史的机遇、更是现实的挑战。本文将主要叙述医院信息化系统(HIS)的设计与实现的过程,其中重点针对HIS系统中OA系统和排班管理系统的设计与实现过程进行研究。系统的开发过程中使用敏捷开发机制进行设计与实现,具体从系统的需求分析、系统使用的技术框架、系统数据库设计、系统编码实现以及系统功能测试等几个方面进行详细阐述。关键词:医院信息化;人事管理;排班管理IAbstractWith the advent
3、of the global digital information, the Internet has deeply rooted into peoples daily lives. In the 21st century, the rapid development of information technology, for the informatization of medical and health industry achievements has brought new opportunities and challenges, like the great changes t
4、aking place in all walks of lives, medical industry is also in progress, development, improvement and optimization. Hospitals will realize the modernization of medical management science and build intelligent and humanized services in the future. The prospect of implementation must depend on the sup
5、port of modern information technologies and applications, cant leave the construction and development of Internet technology,which is not only the mission of the times and the opportunity of history, but also the reality of the challenge.This article mainly discusses design and implementation of the
6、 hospital information system, which focuses on design and implementation of the Office Automation (OA) system and the scheduling management system. The development process of the system adopts agile development mechanism, specifically from requirement analysis, framework and database design, coding
7、implementation and test of the system.Key words: Hospital Informatization; Personnel Management; Scheduling ManagementIII目 录中文摘要IAbstractII目 录III第1章 绪 论11.1 课题研究背景11.2 课题研究领域的发展现状及可能的应用领域21.3 课题研究意义31.4 主要工作3第2章 系统需求分析52.1 系统性能需求52.2 系统功能模块需求52.2.1 人事档案管理模块需求分析52.2.2 信息管理模块需求分析62.2.3 排班管理模块需求分析62.3
8、本章小结6第3章 系统概要设计73.1 系统功能模块结构设计73.2 系统技术架构设计73.3 系统技术架构层次设计83.4 系统数据库的设计93.4.1 人事档案管理模块数据库设计93.4.2 信息管理模块数据库设计103.4.3 排班管理模块数据库设计113.5 本章小结12第4章 系统详细设计及实现134.1 系统开发环境的搭建与实现134.2 人事档案管理模块的设计与实现144.3 信息管理模块的设计实现214.4 排班管理模块的设计与实现254.5 本章小结28第5章 系统运行与测试295.1 功能测试295.1.1 人事档案管理模块功能的测试295.1.2 信息管理模块功能的测试3
9、05.1.3 排班管理模块功能的测试305.2 本章小结31第6章 总结与展望326.1 总结326.2 展望32致 谢33参考文献34附 录35附录A:主要源程序35xxx工学院计算机学院毕业(设计)论文第1章 绪 论本章从医院信息化系统(Hospital Information System 简称HIS)的研究背景和意义出发,论述了医院信息化系统设计与实现的迫切性,总结和概述了现阶段国内外医院信息化系统的发展现状,其中重点介绍了医院信息化系统的实现为医院和患者带来了多大的便利,在此基础上对医院信息化系统进行了设计与实现。1.1 课题研究背景医院是“以患者为中心,以救死扶伤”为宗旨的,实施医
10、疗服务的特殊场所。具有人员密集流量大、设备密集物流多、信息密集流通杂、工作密集时间长等特点,这些特点决定了现代化医院必须是“智能化医院”或者说是“数字化医院”,它不单要实现通信自动化、办公自动化、楼宇自动化,更需要拥有更完善的业务、管理的信息化与科学化,拥有一个运行高效、资源整合、互联互通、信息共享、使用便捷、实时监控的综合系统。医院信息化是社会发展、科技进步和市场竞争的需求。在加快医疗改革、医院运营日益市场化的环境下,患者对医疗质量和健康服务的期望值越来越高。医院以加快信息化步伐,能满足各类人群,包括患者、亲戚、来访者的各种需求,直接体现了医院管理的优越性和人文关怀,使患者及家属的满意度得到
11、提升。医院管理信息化是医院现代化管理的需要,简化了医院现有的业务操作流程、方便了过程控制管理,全面解决数据采集及汇总、分单采购、仓储发放、制作配料、送餐结算,使医院服务和营养膳食供应管理达到一个全新的高度。医院信息系统在发达国家已得到广泛应用,并取得了良好的社会效益和经济效益。医院信息化系统是现代医院运营的必要技术支撑和基础设施,实现医院信息化系统的目的就是为了以更现代化、科学化、规范化的手段加强医院的管理,提高医院的工作效率,改进医疗质量,从而树立全新的现代医院新形象,这也是未来医院发展的发展的必然方向。完整的医院信息化系统实现了信息的全面追踪和动态管理,最终必须做到简化患者的诊疗过程,优化
12、就诊环境,来改变目前排队多、等候时间长、秩序混乱的局面。同时,该系统的实施强化了医院的内部管理,降低了医护人员的工作强度和时间,加速了医院内资金的周转,减少药品、器械等物资的积压现象。医院信息化管理系统的建立更主要的还在于它对医院的管理、医疗的质量和医学研究的长期效应带来的综合效益。因此医院信息化系统的投资属于基础性投资,诚如任何机构的统计部门,它是需要花钱的部门,但其重要性也是不言而喻的,投资也是必须的。本次课题将实现医院信息化系统的设计,本课题的研究将提高医院各项工作的效率和质量,促进医学科研、教学;减轻各类事务性工作的劳动强度,使他们腾出更多的精力和时间来服务于病人;改善经营管理,堵塞漏
13、洞,保证病人和医院的经济利益;为医院创造经济效益。1.2 课题研究领域的发展现状及可能的应用领域医疗信息化最初起源于美国。在20世纪50年代中期,美国开始将计算机应用于医院财务会计管理,后来又进一步实现了部分事务处理,最后逐步形成医院信息系统。目前,国际医疗卫生信息化的发展趋势主要表现在以下几个方面。从单纯的医疗服务、节约劳动、节约时间等方面提高医疗保障,促进医疗过程规范化的方向发展。主要表现在具有医疗过程管理能力的电子病历和电子化临床路径的实施应用等。从单一医院内部的信息化建设向医院集团内统一的信息系统及区域医疗卫生一体化方向发展。主要表现为在进行顶层架构设计时更加强调信息标准化和系统集成平
14、台等。从单纯考虑数据的采集、存储、安全性等向数据的分析和利用,以提升医院经营水平、提高医疗服务质量并提供决策支持等方向发展。主要表现在临床数据仓库建设和数据挖掘的广泛应用等。 我国卫生信息化工作正面临四个方面的困难:一是信息标准基础型工作薄弱,医院信息标准化体系还不完善;二是医疗仪器的兼容性技术研究滞后,机制不健全;三是医学知识库与循证医学的研究薄弱;四是医疗服务质量的控制和管理还存在问题,信息系统的投入见效慢。数字化医院的建设应加强信息标准的研发工作,引入市场运作的模式,同时加强信息化发展制度和政策的研究。目前,在国内医院信息系统市场竞争是国内企业之间的主要竞争,国外公司由于汉化以及本地二次
15、开发的原因,几乎没有真正成功进入国内的范例。从现有已投入使用的医院信息化系统情况来看,全院数字化解决方案企业相对领先企业主要有东软集团、卫宁软件、东华软件等上市企业以及北京天健、杭州创业、智业软件、重庆中联等非上市企业;成本核算系统生产企业主要有东软集团和用友软件两家上市企业以及金算盘;目前国内预约挂号系统中和仁科技具有较强的竞争力;红帆是目前国内医院OA的主要系统解决方案供应商。总之,国内企业竞争之激烈不言而喻,反之,竞争也会促进医疗信息化加速前进!技术的发展促进了医院信息化的发展,最初,在一些人的眼里,只要经过医院信息管理系统完成后,医院中各方面,包括管理水平、财务监管力度等问题自然迎刃而
16、解。但是,如果医院想更好的发展,必然会面临更高的挑战。医院必须满足以下几点,基于信息交互的集成平台;基于数据采集的EMR数据中心;以业务优化为方向的系统流程再造。医院信息化系统未来的发展在于整合,整合医院的所有系统,包括仪器、设备、人员等等。整合的同时,医院必须做到,以患者服务为主,业务管理为辅,以居民电子病历为核心,通过信息平台共享的全面整合,最终实现各种医疗自助服务,让患者充分体验到就医的简便与实惠!随着我国医疗卫生事业的发展,医院面临着如何满足人民群众日益增长的医疗 卫生需求和与国际接轨的双重挑战,为迎接挑战,医院必须实现现代化的管理,建立医院信息化系统。 事实上远程会诊、远程诊治、远程
17、放射影像、远程手术治疗已经付诸实践。在数字化城市的服务网络中,数字化医疗服务网络将逐步扩展,进一步向城市各个社区以至边远乡村 、山区等地区进行扩展。医疗专业人员与患者之间的远程医疗会诊建立新的练习,使患者在发生地、原来的医院可以接受远程专家会诊,并在他们的治疗指导下,在不同地区的患者得到相同的医疗服务水平、相同的质量。本次课题的研究将使用电子计算机和通讯设备,为医院所属各部门提供病人诊疗信息和行政管理信息的收集、存储、处理、提取和数据交换的能力,并满足所有授权用户的功能需求。1.3 课题研究意义随着医院经营成本的增加,扩大收入,片面追求营业收入而忽视成本核算与控制的管理方式,已经不能满足需要。
18、因此在医院在临床科室、办公室、仓库、制药等介绍了医院信息管理系统。基于计算机网络技术的医院信息系统的媒体内容一般包括三个部分。一是以门诊收费挂号、门诊药房、门诊医生工作站、医技工作站四部分组成的门诊系统;二是以医生工作站、护士工作站、病房药房、住院结算组成的住院系统;三是院长查询、统计、病案、审计、科教、物资、设备、固定资产、图书等内容组成的信息化系统。医院信息系统研究这一课题将在现代医院管理中得到广泛应用,尤其是对医院经济的积极作用和意义,主要表现在以下几个方面:提高医院宏观管理水平,特别是经济运行决策水平;建立合理的劳动分配制度;提高经济效益和管理水平;控制费用收支,提高医院收入;实现信息
19、共享,提高资源利用率;减少医患矛盾,提高病人对医院的信任和满意度;节省人力成本,为人事动态调整提供依据。1.4 主要工作1、本次课题将实现医院信息化系统的设计,这次课题将集合多家医院共同使用此系统,最终将实现一个医疗云平台的建设。我主要设计与实现OA系统中国的人事档案管理模块、信息模块,排班管理系统中的门诊排班模块的工作。2、利用SSH(Struts+Spring+Hibernate)集成框架技术实现该医院信息化管理系统的技术架构,并从视图层、核心控制层、业务控制层、业务逻辑层、数据访问层等方面,完成系统层次设计。其中,Struts框架完成了该医院信息化系统MVC(它的全名是Model 、Vi
20、ew和 Controller,中文意思是模型、视图和控制器)设计模式,Hibernate框架实现了该系统对象与关系数据库表之间的映射,Spring利用IoC机制对业务组件进行低耦合、模块化的组装。3、利用Dao模式实现该医院信息化系统数据访问层。Dao层专门负责与数据库进行交互,主要利用Hibernate框架实现,利用对象-关系映射文件实现该医院信息化系统领域模型与关系型数据表之间的映射。4、根据分层设计理念和SSH集成框架技术,实现核心功能模块。人事档案管理模块、信息管理模块、排班管理模块等几个方面进行阐述,并利用该系统的测试效果来检验系统分析、系统设计的正确性。69第2章 系统需求分析需求
21、分析是设计和实现医院信息化系统过程中的基础环节。在此过程中,我们将了解整个系统需要实现哪些功能,需要使用哪些数据,用户对系统的性能有哪些要求。只有在弄清楚系统的需求之后,我们才能寻求实现该系统的解决方案。此阶段是要确定系统功能实现的基础,只有做好需求分析工作,后面的设计与实现将会更加顺利进行。2.1 系统性能需求本系统的性能需求包括多方面的内容,根据系统的主要用户和关键的应用用户来考虑,这里只对系统的整体性能要求进行了综述,主要包括以下几个方面:1、系统响应过程的精确性和及时性:系统响应过程的准确性与及时性是系统实现的第一位要求。响应时间是从用户发出操作请求到该系统响应并开始执行用户操作请求所
22、需的事件,响应时间越短,说明该管理系统的性能越好,效率越高。2、系统的可扩展性:系统的扩展性能是非常重要的,它是满足医院信息化与时俱进性的保证。为了系统运行期的平滑升级,开发的技术必须是主流。3、系统的易用性与易维护性:医院的信息化系统主要是针对医院中医生使用的,而医院中的医生不免有年纪较大的专家,所以就要求系统具有良好的用户界面和简单的操作流程和相应的提示功能的实现。4、系统的安全性:随着互联网的飞速发展,系统的安全性越来越被重视,系统的安全性是整个系统的基本保障。医院的信息化系统中系统的安全性也是至关重要的,比如,医生的处方,药品的进销渠道,用户的基本信息等安全性问题都需要来保护。5、系统
23、的标准性:系统的研发、运行过程中涉及到很多计算机硬件与软件、药品信息标准、医生的职称标准等信息都需要使用国际标准来定义和使用。6、系统并发方面的支持:该系统一旦投入运行,同时访问该系统的用户一定会较多,比如,早上上班访问高峰期。所以,这就要求系统具有较好的并发方面的支持。2.2 系统功能模块需求2.2.1 人事档案管理模块需求分析本模块主要实现对医院员工信息的管理,包括对人员基本信息的添加、修改、查看和删除的操作,对人员相关附件和照片的上传、下载、删除的操作,对人员基本信息的导出操作,对人员进行角色的配置,对人员的个人密码的修改操作,以及待退休和待转正人员的提醒操作,对员工门禁卡信息的添加、修
24、改和删除操作。本模块实现的功能中,人员的基本信息量较多,在实现的过程中一定要保证信息的准确性。2.2.2 信息管理模块需求分析本模块主要实现对系统中信息的管理功能,包括对医院信息的增加、修改和删除功能,对项目中不同的系统信息进行增加、修改和删除操作,对功能按钮信息的增加、修改和删除操作。信息管理模块中的功能是整个大项目的基础,包括人员登录系统时对不同医院的选择,对不同系统的选择,对该登录人员权限的控制等操作,所以此模块的功能实现一定要保证精确!2.2.3 排班管理模块需求分析本模块主要实现对医院中医生工作时间的安排功能。包括号类信息的添加、修改和删除操作,门诊基础号表的添加、修改和删除操作,急
25、诊基础号表的添加、修改和删除操作。本模块的功能是门诊急诊挂号收费系统中挂号功能的基础部分,只有本模块功能的成功实现,才能够保证对病人挂号功能的实现。所以此模块的功能实现至关重要。2.3 本章小结本章对系统的需求分析做了详细的说明,从对整个系统性能的需求说起,通过阐述人事档案管理模块、信息管理模块和排版管理的详细需求。对系统功能做了需求分析,另外对该模块在整个系统中的重要作用做了一下说明。第3章 系统概要设计医院信息化系统的设计是在前一章需求分析的基础上进行设计的,对前一章中性能需求和功能需求进行详细的分析和设计,本章内容将设计系统的模块结构、系统实现的层次设计、系统数据库设计等几个方面进行详细
26、阐述。3.1 系统功能模块结构设计根据前一章中的需求分析,我们把OA系统和排班系统中的人事档案管理模块、信息管理模块和门诊排班模块的功能实现结构设计如图 3-2 系统技术架构设计图所示。图 3-1 系统模块结构图3.2 系统技术架构设计根据软件行业中各种不同框架的比较和分析,我们采用先进的轻量级框架对系统功能进行设计与实现,使用SSH(Struts+Spring+Hibernate)框架作为总体架构。由于考虑到医院中信息数据量较大,信息形式较为复杂,所以对于数据的存储我们使用对象关系型数据库系统,即Oracle数据库。它是基于客户机/服务器的系统结构,并且具有跨平台移植、分布式数据处理和支持大
27、事务量处理的特点。总体技术架构设计如图 3-2 系统技术架构设计图所示。浏览器(Browser)Struts框架视图(JSP)核心控制器(ActionServlet)业务控制器(Action层)Oracle数据库Spring框架Action代理IoC控制反转JDBC接口AOP+事务代理Hibernate框架对象-关系映射文件数据处理(数据访问层)Hibernate配置图 3-2 系统技术架构设计图 SSH技术架构实现了MVC模式,它借助struts配置文件,使业务流程不需要被编码到应用程序中去,这可以增强了系统的可维护性和灵活性。同时,针对Hibernate映射框架来讲它实现了实体对象与关系型
28、数据之间的映射,对底层JDBC(它的全称是Java Data Base Connectivity,中文意思是java数据库连接)技术实现了轻量级封装,建立java领域模型的持久化对象,因此替代了原始的JDBC技术完成了轻量级的封装。Spring属于耦合性较低,一个模块化的开发框架,支持研发人员使用部分的模块实行研发,可以通过控制反转对业务进行组装,在多框架企业应用系统中能够起到穿针引线的功能。所以,医院信息化系统的技术架构采用SSH集成框架是最佳选择。3.3 系统技术架构层次设计在图 3-2 系统技术架构设计图所示的系统技术架构设计中,包括视图层、核心控制层、业务控制层以及数据访问层等几个层次
29、的设计,系统的开发也将主要集中在这几个层次上进行实现。下面围绕这几个层次进行系统技术架构层次分析。1、 视图层(View层)该医院信息管理系统的视图层主要由JSP页面构成,此外还包括JS、Ajax、EasyUI等前端技术,这些技术对实现页面的美观性和页面加载的高效性起到了至关重要的作用。2、 核心控制层ActionServlet是Struts框架的核心控制器组件,它主要用于拦截用户操作的请求,然后按照系统配置的具体请求传递给相应的业务Action对象。3、 业务控制层(Action层)业务控制层能够从前端获取数据,也能够把系统模型中的数据传送至前端页面。这些功能都需要Action类来实现,而业
30、务Action类又需要struts和spring的配置文件共同作用来完成。4、 业务逻辑层(Service层)业务逻辑层主要用来处理系统具体功能中相对复杂的逻辑关系而产生的。5、 数据访问层(Dao层)Dao层专门负责对数据库的交互操作和访问,目的是降低组件耦合度,以屏蔽抽象底层的具体实现。当底层实现改变时,能够不用编辑上层应用程序的实现,就可以很好的兼容底层变动。从以上层次分析可以看出,医院信息化管理系统采用视图层、核心控制层、业务控制层、业务逻辑层和数据访问层的分层结构将是最好的选择,层与层之间是相互独立的,每一个层面都有特定的服务。在该系统的分层结构中,任何一层只要它的接口不发生改变,具
31、体实现发生改变对其他层面是没有影响的。分层后不仅使该系统各层次功能实现变得简单,并且具有易维护性和易扩展性。3.4 系统数据库的设计3.4.1 人事档案管理模块数据库设计系统中人事档案管理的相关信息较多,涉及员工基本信息数据、员工相关附件数据、科室信息数据、角色信息数据等多个部分,数据库表结构设计如图 3-3 人事档案模块数据库设计图所示。具体包括XT_USER(用户表)、XT_UNIT(科室表)、XT_ROLE(角色表)、XT_USER_UNIT(用户科室中间表)、SYS_GB_MZ(民族表)、XT_USERFILE(附件表)、XT_DOCZC(职称表)、SYS_GB_BANK(银行表)、X
32、T_USER_ROLE(用户角色中间表)、XT_USER_CARD(员工门禁卡信息表)共10张表。图 3-3 人事档案模块数据库设计图3.4.2 信息管理模块数据库设计信息管理模块主要负责权限、医院、系统等几个方面的信息管理,数据库表结构设计如图 3-4 信息管理模块数据库设计图所示。具体包括XT_HOSPITAL(医院信息表)、XT_SYSTEM(系统信息表)、XT_FUN_BUTTON(按钮信息表)、XT_FUNCTION(菜单信息表)、XT_PERMISSION(权限表)共5张表。图 3-4 信息管理模块数据库设计图3.4.3 排班管理模块数据库设计排班管理主要负责门诊医生就诊排班的功能
33、,包括号类信息管理、基础号表维护和号表维护,数据库表结构设计如图 3-5 排班管理模块数据库设计图所示。具体包括HIS_PBNUMBERTYPE(号类维护表)、HIS_PBMZ_BASENUM(门诊基础号表维护表)、HIS_PBTYPE_BASE(号类与门诊基础号表的关系表)、HIS_PBMZ_NUMCODE(门诊排班号表维护表)、HIS_PBMZ_TYPE_CODE(号类与门诊排班号表关系表)共5张表。图 3-5 排班管理模块数据库设计图3.5 本章小结本章主要介绍了医院信息化系统的各个功能模块结构的设计、实现功能模块所需要使用的技术架构、系统层次分析以及各个模块中数据库表结构的设计。该医院
34、信息化系统主要包括人事档案管理模块、信息管理模块和排班管理模块等三个主要模块;系统技术架构采用SSH集成框架;系统层析分析从视图层、核心控制层、业务控制层、数据访问层等方面进行探讨;数据库表设计主要阐述了各个模块所需要使用的数据库表结构设计图。第4章 系统详细设计及实现本章主要根据前面阶段确定下来的系统需求和系统技术架构设计情况,继续进行各个模块功能的详细设计和实现,对主要的业务流程做进一步分析后,为系统的功能编码实现打下坚实的基础。并在系统详细设计的基础上严格按照需求分析所确定下来的功能模块对系统进行详细的编码实现。4.1 系统开发环境的搭建与实现Struts、Spring、Hibernat
35、e这三个框架各有各的特点,为了提高系统的开发效率,该医院信息管理系统采用SSH集合架构来实现,系统整体实现结构如图 4-1 系统实现结构图所示。图 4-1 系统实现结构图4.2 人事档案管理模块的设计与实现根据人事档案管理模块的需求分析,对该功能模块的需求做进一步的划分,具体功能菜单包括个人中心、转正提醒、退休提醒、人员列表、员工门禁卡管理。左侧菜单实现显示如图 4-1 人事档案管理模块菜单图所示。下面详细阐述对各个功能菜单中内容的设计和实现。图 4-1 人事档案管理模块菜单图(1) “个人中心”功能的设计与实现个人中心菜单中主要显示登录人的详细信息,页面设计如图 4-2 个人信息显示页面设计
36、图所示;并实现修改个人密码的功能,页面设计如图 4-3 修改密码页面设计图所示。图 4-2 个人信息显示页面设计图显示个人详细信息实现过程:核心控制器ActionServlet拦截个人中心的http请求,调用Action类对象来处理请求;在业务控制层中的UserAction.java文件中的queryUser()方法中进行处理,从session对象中获取用户的ID值;在数据访问层查询数据库中该用户的信息;最后将查询到的信息返回给前端personInfo.jsp页面进行展示。图 4-3 修改密码页面设计图修改个人密码功能实现过程:核心控制器ActionServlet拦截修改密码的http请求,调
37、用Action类对象来处理请求;在业务控制层中的UserAction.java文件中的modPwdTo()方法中处理后显示前端页面updatePwd.jsp。在updatePwd.jsp页面上输入相应的信息,之后,在业务控制层中的UserAction.java文件中的checkOldpsw()方法对原密码和新输入的密码进行验证,验证通过后在savePwd()方法中实现修改密码的操作功能;最后在数据访问层修改数据库中的该用户的密码。(2) “转正提醒”功能的设计与实现转正提醒菜单中包括显示待转正人员(一周)的列表信息,页面设计如图 4-4 转正提醒列表页面设计图所示;查看员工信息功能,由于查看员
38、工基本信息的实现逻辑与个人中心中查看个人信息的逻辑实现相类似,在此不再做详细阐述。图 4-4 转正提醒列表页面设计图转正提醒列表实现过程:核心控制器ActionServlet拦截转正提醒的http请求,调用Action类对象来处理请求;在业务控制层中的UserAction.java文件中的getDzzUserList()方法中进行处理;在数据访问层查询数据库中所有待转正员工的信息;最后将查询到的信息返回给前端dzzUserList.jsp页面进行展示。(3) “退休提醒”功能的设计与实现退休提醒功能的设计与实现和转正提醒功能的设计与实现逻辑相类似、页面设计大同小异,在此就不再做过多赘述。(4)
39、 “人员列表”功能的设计与实现人员列表菜单中的功能包含较多,列表页面设计如图 4-5 人员列表页面设计图所示;人员信息添加、修改、删除,页面设计如图 4-6 人员信息添加页面设计图所示;附件上传、下载、删除,页面设计如图 4-7 附件管理页面设计图所示;照片下载;员工信息导出;为员工添加角色、删除角色,页面设计如图 4-10 修改角色页面设计图所示;为员工转正操作等功能。图 4-5 人员列表页面设计图人员列表实现过程:核心控制器ActionServlet拦截人员列表的http请求,调用Action类对象来处理请求;在业务控制层中的UserAction.java文件中的getLbUserList
40、()方法中进行处理;在数据访问层获取数据库中所有员工的信息;最后将获取到的信息返回给前端empUserList.jsp页面进行展示。图 4-6 人员信息添加页面设计图人员基本信息添加功能实现过程:核心控制器ActionServlet拦截人事档案添加的http请求,调用Action类对象来处理请求;在业务控制层中的UserAction.java文件中的getUserMZandKS()方法中处理后显示前端页面addUser.jsp。在addUser.jsp页面上输入相应的信息,之后,页面会对输入的信息做简单的验证,验证通过后在addEmp()方法中实现添加人员基本信息的操作功能,最后在数据访问层把
41、数据添加至数据库进行保存。人员基本信息的修改功能实现过程相比较添加功能,需要多执行一步把需要修改的信息从数据库中查询并显示出来的操作,其余的实现和设计过程与添加功能基本一致,包括页面的设计,修改功能的逻辑实现,数据库中信息的修改等方面。在此不再过多赘述。员工的删除功能实现过程:在人员列表页面中选中需要删除的员工,核心控制器ActionServlet拦截人员注销的http请求,调用Action类对象来处理请求;在业务控制层中的UserAction.java文件中的delUserTo()方法中进行处理,最后在数据访问层中修改该人员的状态。图 4-7 附件管理页面设计图附件和照片上传功能的实现过程:
42、附件和照片的上传使用的是struts框架中文件的上传技术。在设计前端JSP页面时,设计为支持文件上传的FORM表单,就是把FORM表单的enctype属性定义为multipart/form-data。核心控制器ActionServlet拦截附件上传的http请求,调用Action类对象来处理请求;在业务控制层中的UserAction.java文件中的addOrMod()方法中处理附件的上传;在业务逻辑层指定附件上传的路径、文件名等信息;在数据访问层中保存附件的名称、附件上传的路径等信息。照片的上传实际上也可以看做是一个文件的上传,所以照片的上传逻辑在编码实现的时候同附件的上传是一样的。附件和照
43、片下载功能的实现过程:附件和照片的下载使用的也是struts框架中的文件下载技术。在核心控制器中指定该操作是文件流操作,具体指定内容如图 4-8 定义文件下载代码实现图所示。核心控制器ActionServlet拦截附件下载的http请求,在此指定为文件下载操作,调用Action类对象来处理请求;在业务控制层中的UserAction.java文件中的getUserFile()方法中处理附件的下载。图 4-8 定义文件下载代码实现图员工信息以Excel形式导出的实现过程:Excel文件的导出主要利用的POI(Poor Obfuscation Implementation)技术来实现的。Apache
44、 POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。首先需要准备必要的jar包,显示如图 4-9 POI技术需要的jar包图所示;核心控制器ActionServlet拦截信息导出的http请求,调用Action类对象来处理请求;在业务控制层中的UserAction.java文件中的uploadExcel()方法中处理文件的导出;在业务逻辑层的findWriterExcel()方法中,实现Excel文件中的具体内容,包括定义工作薄并为其命名、生成样式、创建行、创建单元格、添加数据等内容都需要在此实现。Excel文
45、件中显示的数据是需要在数据访问层从数据库中查询所得。图 4-9 POI技术需要的jar包图图 4-10 修改角色页面设计图修改角色实现过程:核心控制器ActionServlet拦截修改角色的http请求,调用Action类对象来处理请求;在业务控制层中的UserAction.java文件中的addRoleByUserTo()方法中处理现有角色信息;在数据访问层查询该用户下的现有角色,显示前端页面addRoleByUser.jsp;在addRoleByUser.jsp页面中可以选择需要删除的角色,执行删除操作,核心控制器ActionServlet再次拦截删除角色的http请求,调用Action类
46、对象来处理请求;在业务控制层中的UserAction.java文件中的delUserRole()方法中处理删除角色信息的操作;在数据访问层修改该角色的状态信息。在业务控制层中的RoleAction.java文件中的selectRoleByUser()方法中处理所有需要添加的角色信息;在数据访问层查询该员工所有未添加的角色信息,显示在前端页面roleUserList.jsp中;在roleUserList.jsp页面中为该用户选择需要添加的角色,点击“保存”按钮,核心控制器ActionServlet会再次拦截添加角色的http请求,调用Action类对象来处理请求;在业务控制层中的UserActi
47、on.java文件中的addUserRole()方法中处理添加角色的操作;在数据访问层存储添加的角色。为员工执行转正操作的实现过程,实质上就是把员工的状态由试用期状态修改正式员工的状态,页面就是人员列表页面,不需要设计其他页面,实现逻辑也比较简单,在此不做过多赘述。(5) “员工门禁卡管理”功能的设计与实现员工门禁卡管理菜单中实现的功能就是对员工门禁卡信息的列表查看,页面设计如图 4-11 员工门禁卡列表页面设计图所示;员工门禁卡信息的添加功能,页面设计如图 4-12 员工门禁卡添加页面设计图所示。图 4-11 员工门禁卡列表页面设计图员工门禁卡列表实现过程:核心控制器ActionServlet拦截员工门禁卡列表的http请求,调用Action类对象来处理请求;在业务控制层中的UsercardAction.java文件中的getUsercardList()方法中进行处理;在数据访问层获取数据库中所有员工门禁卡的信息;最后将获取到的信息返回给前端usercardList.jsp页面进行展示。