资源描述
毕毕 业业 设设 计(计( 论论 文文 )OAOA 自动化办公系统自动化办公系统Oa office automation system系 名: 信息工程系 专业班级: 0504 班 学生姓名: 学 号: XXX29(联合学院的每个学生都有个号)指导教师姓名: 指导教师职称: 二一 年 五 月摘 要 随着网络的浪潮席卷了整个世界,也带了人们对互联网应用的彻底转变。自动化办公也逐步进入各个公司,无纸化办公逐步代替部分有纸化办公,也节约了公司运作成本,OA 办公自动化系统应运而生。OA 办公自动化系统不断使人们的部分办公业务活动物化于人以外的各种现代化的办公设备中,最大限度地提高办公效率和改进办公质量,改善办公环境和条件,缩短办公周期,并利用科学的管理方法,借助于各种先进技术,辅助决策,提高管理和决策的科学化水平,以实现办公活动的科学化、自动化。本系统一共包括十个标准子模块:整个系统主要分为文件管理、共享下载、消息管理、公文流传、通知管理、内部论坛、人力资源管理、资产管理等。满足不同的角色需求。OA 自动化平台系统是基于 B/S 结构的 Web 应用程序系统,使用了 ASP.Net环境 C#语言 SQL 据库。本系统秉承办公自动化的理论以及软件设计开发原则,解决了原有办公管理方式效率低、资源损耗高等问题。关键词:关键词: OA 系统、B/S 结构、Web 应用程序、SQL 数据库目目 录录第一章第一章 前前 言言.11.1OA 简介 .11.2 OA 意义.21.3 OA 使用对象.21.3.1 个人工作管理.21.3.2 实现组织管理.3第二章第二章 相关技术、架构与开发工具简介相关技术、架构与开发工具简介.42.1ASP.NET技术介绍.42.2 三层结构.52.3JQUERY简介.72.4ASP.NET对象.72.5 数据访问技术.82.6 系统开发所需的工具和环境.9第三章第三章 系统数据库设计与系统可行性分析系统数据库设计与系统可行性分析.103.1 数据库表.103.2 系统可行性分析.113.2.1 技术可行性分析.113.2.1 经济可行性分析.11第四章第四章 系统整体结构分析系统整体结构分析.134.1 系统整体模块.134.2 系统角色及权限划分.134.3 系统存储过程.14第五章第五章 系统模块分析系统模块分析.155.1 系统登录.155.2 考勤功能实现.155.2.1 在线考勤功能实现.155.2.2 在线考勤查询功能实现.195.2.3 所有考勤记录显示和部门考勤.235.3 通讯录.245.3.1 通讯录查询.245.3.2 通讯录的添加.24第六章第六章 总结与展望总结与展望.266.1 总结.266.2 展望.26致致 谢谢.27参考文献参考文献.28第一章第一章 前前 言言1.11.1OAOA 系统简介系统简介办公自动化( Office Automation,简称 OA)是将现代化办公和计算机网络功能结合起来的一种新型的办公方式,是当前新技术革命中一个非常活跃和具有很强生命力的技术应用领域,是信息化社会的产物1。在行政机关、企事业单位工作中,是采用Internet/Intranet 技术,基于工作流的概念,以计算机为中心,采用一系列现代化的办公设备和先进的通信技术,广泛、全面、迅速地收集、整理、加工、存储和使用信息,使企业内部人员方便快捷地共享信息,高效地协同工作;改变过去复杂、低效的手工办公方式,为科学管理和决策服务,从而达到提高行政效率的目的。一个企业实现办公自动化的程度也是衡量其实现现代化管理的标准。我国专家在第一次全国办公自动化规划讨论会上提出办公自动化的定义为:利用先进的科学技术,使部分办公业务活动物化于人以外的各种现代化办公设备中,由人与技术设备构成服务于某种办公业务目的的人一机信息处理系统。办公室自动化是近年随着计算机科学发展而提出来的新概念。办公室自动化英文原称 Office Automation,缩写为 OA。办公室自动化系统一般指实现办公室内事务性业务的自动化,而办公自动化则包括更广泛的意义,即包括网络化的大规模信息处理系统。通常办公室的业务,主要是进行大量文件的处理,起草文件、通知、各种业务文本,接受外来文件存档,查询本部门文件和外来文件,产生文件复件等等。所以,采用计算机文字处理技术生产各种文档,存储各种文档,采用其它先进设备,如复印机、传真机等复制、传递文档,或者采用计算机网络技术传递文档,是办公室自动化的基本特征。办公室是各行业工作的领导进行决策的场所。领导机关做出决策,发布指示,除了文档上的往来之外,更深层的工作,实际上是信息的收集、存储、检索、处理、分析,从而做出决策,并将决策作为信息传向下级机构或合作单位,或业务关联单位。 这些都需要办公自动化的辅助。我们可以认为办公自动化系统是人类处理信息的系统,是人类进入信息时代后的一种新概念。1.21.2 OAOA 系统意义系统意义 办公自动化可以和一个企业的业务结合的非常紧密,甚至是定制的。因而可以将诸如信息采集、查询、统计等功能与具体业务密切关联。操作人员只须点击一个按钮就可以得到想要的结果,从而极大得方便了企业领导的管理和决策。 办公自动化还是一个企业与整个世界联系的渠道,企业的Intranet 网络可以和 Internet 相联。一方面,企业的员工可以在Internet 上查找有关的技术资料、市场行情,与现有或潜在的客户、合作伙伴联系;另一方面,其他企业可以通过 Internet 访问你对外发布的企业信息,如企业介绍、生产经营业绩、业务范围、产品 /服务等信息。从而起到宣传介绍的作用。随着办公自动化的推广,越来越多的企业将通过自己的Intranet 网络联接到 Internet上,所以这种网上交流的潜力将非常巨大。 办公自动化已经成为企业界的共识。众多企业认识到要尽快进行办公自动化建设,并占据领先地位,将有助于保持竞争优势,使企业的发展形成良性循环。1.31.3 OAOA 系统使用对象系统使用对象 一切办公活动过程归根到底是由 “人通过工作 ”来完成的,因此,工作管理是 OA 系统的基本组成单元,工作管理问题解决的深度也决定了OA系统的应用水平,工作管理的成败决定了OA 系统是否能促进管理、辅助管理。一个体现 “以人为本”设计思想的 OA 系统,应该建立在个人工作管理、组织工作管理和项目工作管理三维立体的系统体系之中。1.3.11.3.1 个人工作管理个人工作管理在办公管理中,无论任何工作、任何事情,最终都是通过人来完成的,管理的本质是人。“个人工作管理 ”系统解决个人工作效率的问题,包括个人总结、任务备忘、个人助理、日程管理、工作处理。“个人总结”是个人对过去一个时期内的实践活动作出系统的回顾归纳。可以按照每日、每周、每月或年度等进行分类总结,既方便查询又便于个人总结得失。管理人员可以要求员工每日、每周、每月或每年度给出其工作总结,也可以按需要的时间段进行分类统计,及时了解员工的工作和任务的进展情况,把握工作进度,总结工作得失。“个人计划”提醒本人将要做的一些重要任务,既可由本人创建,也可以是其他相关 工作人员创建,根据权限进行浏览和审阅 。“个人助理”是个人办公的计算机秘书,可以按信息种类建立自己的电子便笺、各种通信录,能够将各种常用信息迅速地分类保存,便于以后工作中查找使用,为个人办公提供更细致的服务。“日程安排”用来设置个人的工作日程,并在设定的时间给予提示,防止错过重要工作和活动。个人日程管理包括其他人安排给自己的工作、自己自行安排的工作,即可以避免时间冲突,又可以让其他人了解自己的日程安排。上级领导在 “组织日程”中为下属人员安排的日程,在下属人员的 “个人日程管理 ”中也能看到。“工作处理”包括工作描述、工作汇报、工作考核、参与人员及参与部门等,将每项工作分解开来,便于工作的管理。每项工作都配以甘特图,使工作表述得更加明了。按照工作性质,又将个人的工作分为 “负责的工作 ” 、 “考核的工作 ” 、“待批的工作 ”和“已建的工作”等,这种清晰的工作分类,极大地方便了工作的查询和处理。目前大部分 OA 系统很难将企业业务工作落实到个人办公上,个人工作管理的设计,可使个人办公与部门办公、企业业务有机地结合起来。1.3.21.3.2 实现组织管理实现组织管理组织管理解决人与人之间联合工作的问题,并要建立一套完整的工作监控管理机制,最终解决部门自身与部门之间协同工作的效率问题,系统地推进管理工作的制度化、标准化和规范化。工作标准也是人力资源考核的基本标准,系统可以方便灵活地建立用户的部门目录树和角色目录树,主要目标是将各部门、各个人的力量通过组织管理联合起来,最终达到预定管理目标。组织管理更加符合现代办公管理特点,是各级管理人员专用的系统,是各级管理人员系统地了解企业经营管理信息及辅助决策信息的重要工具。虽然组织办公工作涉及数据复杂,但此系统的操作比较简单,管理数据往往涉及到企业机密,所以用户进入系统时,必须进行身份认证,在此程序中有三级管理权限:管理员( admin)、部门经理、员工 。第二章第二章 相关技术、架构与开发工具简介相关技术、架构与开发工具简介2.1Asp.Net2.1Asp.Net 技术介绍技术介绍 Asp.Net 是由微软在.NET Framework 中所提供的,开发 Web 应用程序的类库,封装在 System.Web.dll 文件中,显露出 System.Web 命名空间,并提供 Asp.Net 网页处理、扩充以及 HTTP 通道的应用程序与通信处理等工作,以及 Web Service 的基础架构。 Asp.Net 是 ASP 技术的后继者,但它的发展性要比 ASP 技术要强大许多2。Asp.Net使用一种字符基础的,分级的配置系统,使你服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为Zero Local Administration的哲学观念使Asp.Net的基于应用的开发更加具体,和快捷。一个Asp.Net的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须的文件,不需要系统的重新启动,一切就是这么简单。多处理器环境的可靠性Asp.Net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。即使你现在的Asp.Net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP 却做不到这一点。自定义性和可扩展性Asp.Net设计时考虑了让网站开发人员可以在自己的代码中自己定义plug-in的模块。这与原来的包含关系不同,Asp.Net可以加入自己定义如何组件。安全性基于 Windows 认证技术和每应用程序配置,你可以确性你的原程序时绝对安全的。Asp.Net 的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加 Asp.Net 功能,随时增强 ASP 应用程序的功能。 Asp.Net 是一个已编译的、基于.Net 的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比 ASP 即时解释程序速度上要快很多 .而且是可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C# 和 JScript .NET.)创作应用程序。另外,任何 Asp.Net 应用程序都可以使用整个.NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。Asp.Net 可以无缝地与 WYSIWYGHTML 编辑器和其他编程工具(包括 Microsoft Visual Studio .NET)一起工作。这不仅使得 Web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试支持。 当创建 Asp.Net 应用程序时,开发人员可以使用 Web 窗体或 XML Web services,或以他们认为合适的任何方式进行组合。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义。2.22.2 三层结构三层结构 (图 1) 三层架构(3-tier application) (如图 1)通常意义上的三层架构就是将整个业务应用划分为:表现层( UI)、业务逻辑层( BLL)、数据访问层(DAL)。区分层次的目的即为了 “高内聚,低耦合 ”的思想3。1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。2、业务逻辑层( BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。3、数据访问层( DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层。三层结构原理:3 个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S 应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。表示层位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。业务逻辑层( Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler 在Patterns of Enterprise Application Architecture一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱 Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是 “无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML 文档。简单的说法就是实现对数据表的 Select,Insert,Update,Delete 的操作。如果要加入 ORM 的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。2.32.3 JQueryJQuery 简介简介JQuery 是继 prototype 之后又一个优秀的 Javascrpt 框架。其宗旨是WRITE LESS,DO MORE,写更少的代码 ,做更多的事情。它是轻量级的 js库(压缩后只有 21k) ,这是其它的 js 库所不及的,它兼容 CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery 是一个快速的,简洁的 javaScript 库,使用户能更方便地处理 HTML documents、events、实现动画效果,并且方便地为网站提供AJAX 交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。 jQuery 能够使用户的 html 页保持代码和 html 内容分离,也就是说,不用再在 html 里面插入一堆 js 来调用命令了,只需定义 id 即可。2.4Asp.Net2.4Asp.Net 对象对象RESPONSE 的作用是向浏览器输出文本、数据和cookies,并可重定向网页,或用来控制向浏览器传送网页。REQUEST 对象用来读取客户端的表单信息或其他传送到服务器端的信息,并可以在此基础上实现将客户数据存入WEB 数据库或做其他进一步的处理。它对应到 System.Web 命名空间内的 ServerHttpRequest 类,当客户端发出请求执行 程序时,客户端的请求信息被包装在Request 对象中,这些请求信息包括请求报头、客户端的机器信息、客户端浏览信息、请求方法(如 post、get)、提交的窗体信息、 Cookie 等。使用 APPLICATION 对象,能够使得访问同一个 Asp.Net 应用程序的多个客户端浏览器之间实现信息共享,因为无论多少个客户同时访问该程序,都只会产生一个 Application 对象。通常可以把共享的数据变量存储在application 对象的集合中,这些变量可以在站点应用程序的所有页面上被所有客户端访问。网站所有的用户公用一个Application 对象,当网站服务器开启的时候,Application 就被创建。利用 Application 这一特性,可以方便地创建聊天室和网站计数器等常用的 Web 应用程序。SESSION 对象用来为每个客户存储独立的数据或特定客户的信息,而Application 对象则用来为所有客户存储共享的数据,方便的实现密码验证。如果当前若干个客户连线到某一个站点,那么这些客户处理共享一个Application 对象之外,每个客户还各自拥有一个独立的Session 对象。使用 Session 对象可以为各个客户保存指定的数据。存储在某个客户Session 对象中的任何数据都可以在该客户调用下一个页面时取得。在用户与网站交互的整个会话期间内, Session 对象中的变量值都不会丢失,直到会话超时或访问者离开时为止,该 Session 对象才被释放。COOKIE 对应到 System.Web HttpCookie 类,隶属于 Response 和 Request 对象,本质上是一段文本信息,能随着用户请求和页面在Web 服务器和浏览器之间传递。用户每次访问站点时, Web 应用程序都可以读取 Cookie 包含的信息。使用 Cookie 可以知道用户上次登录的时间等具体信息。Cookie 是与 Web 站点而不是与具体页面关联的,所以无论用户请求站点中的哪个页面,浏览器和服务器都将交换Cookie 信息。用户访问其他站点时,每个站点都可能向浏览器发送一个Cookie 请求,而浏览器会将所有这些 Cookie 保存6。2.52.5 数据访问技术数据访问技术使用 C# 2005 开发的应用程序必须通过使用 ADO.NET 数据访问模型才能访问 Sqlserver 2005 数据库。Ado.Net 是专门为了对数据存储进行无连接数据访问而设计的。它以XML(扩展标记语言)作为传送和接收数据的格式,与ADO 相比,它提供了更大的兼容性和灵活性。Ado.Net 具有互操作性、性能、可扩展性、标准化、可编程性等方面的优点。ADO.NET 中有三个重要的类: “数据集”(DataSet), “数据连接”(Connection), 数据适配器(DataAdapter)对象。“数据连接”(Connection)对象用于在应用程序和数据库之间建立连接,每个.NET 数据提供程序都有其自己的连接类。具体实例化哪个特定的连接类,取决于所使用的 .NET 数据提供程序。数据适配器(DataAdapter)对象在 DataSet 与数据之间起桥梁作用。数据集(DataSet)DataSet 是 ADO.NET 的中心概念 .可以把 DataSet 当成内存中的数据库 ,DataSet 是不依赖与数据库的独立数据集合(即使断开数据链路,或者关闭数据库 ,DataSet 依然是可用的) .DataSet 在内部是用 XML 来描述数据的,由于 XML 是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet 实际上可以容纳具有复杂关系的数据,而且不在依赖于数据库链路。正是由于 DataSet 才使得程序员在编程时可以屏蔽数据库之间的差异,从而获得一致的编程模型。 DataSet 支持多表、表间关系、数据约束等,和关系数据库的模型基本一致。另外,ADO.NET 中还有一个 Command 对象,它允许向数据传递请求,以便检索和操作数据库中的数据。它还可以对数据库执行SQL 语句,而返回的结果可以通过 DataReader 对象以只读、单向的方式获取。在 C# 2005 应用程序中使用 “数据连接”对象建立到 Sql server 2005数据库的连接,这样才能够对 Sql server 2005 数据库进行操作, “数据适配器”对象负责通过 “数据连接”对象存取 Sql server 2005 数据库中的内容,而取出的数据将临时存储在内存中的 “数据集”对象中。C# 2005应用程序可以通过数据集使用数据。2.62.6 系统开发所需的工具和环境系统开发所需的工具和环境开发工具:VS 2005,SQL 2005,Dreamweaver, IE 浏览器运行环境:.Net 2.0,IIS 6,Server 2003 第三章第三章 系统数据库设计与系统可行性分析系统数据库设计与系统可行性分析3.13.1 数据库表数据库表本系统数据库采用 SQL2005 数据库进行设计,由于数据表较多涉及到公司,所以只将提供涉及到部分功能的数据库。下面的数据库表只有通讯方式表,考勤表,用户表。序号序号列名列名数据类型数据类型长度长度小数小数位位标识标识主键主键允许允许空空默认默认值值说明说明1al_idint40是是否通讯录id2al_u_idint40是姓名id(外键)3al_dept_idint40是部门id(外键)4al_dutyvarchar500是职 务5al_mobilevarchar500是手 机6al_smallclevervarchar500是小灵通7al_worktelephonevarchar500是办公电话8al_extensionvarchar500是分 机9al_faxvarchar500是传 真10al_emailvarchar500是Email11al_qqvarchar500是QQ12al_msnvarchar500是MSN13al_addressvarchar500是地址14al_remarkvarchar2000是备注表表3.13.1 addresslistaddresslist序号序号列名列名数据类型数据类型长度长度小数小数位位标识标识主键主键允许允许空空默认默认值值说明说明1att_idint40是是否考勤id2att_datedatetime83是考勤日期3att_forenoontimedatetime83是上午时间4att_afternoontimedatetime83是下午时间5att_u_idint40是姓名id(用户表外键)6att_dept_idint40是部门id(外键) 表表3.23.2 attendanceattendance 序号序号列名列名数据类型数据类型长度长度小数位小数位标识标识主键主键允许空允许空默认值默认值说明说明1u_idint40是是否用户 id2u_usernamevarchar500是用户名3u_passwordvarchar500是密码4u_dept_idint40是部门id(外键)5u_em_idint40是员工(档案)id(外键)6u_stateint40是状态(是否在线)7u_logintimedatetime83是登陆时间8u_logindegreeint40是登陆次数9u_pwdbindvarchar500是密码绑定10u_g_idint40是所在群id(外键)11u_landipvarchar500是登陆 ip表表3.33.3 usersusers3.23.2 系统可行性分析系统可行性分析3.2.13.2.1 技术可行性分析技术可行性分析随着技术发展,Web技术已经成熟,大量的新技术,专业第三方插件涌现出来,再加上开发工具人性化程度越来越高,在很大程度降低了开发难度,本系统采用是Asp.Net,进行开发的,.Net已经是一个相当成熟的技术,再加上人性化的用户开发模式,为本系统开发技术可行性奠定了基础。3.2.13.2.1 经济可行性分析经济可行性分析随着OA系统市场需求的逐步扩大,OA系统开发技术变得成熟, OA系统开发的成本逐步下降,开发的周期大为缩减,再加上现在支持开源的呼声越来越大,很多OA开发商公布自己的源代码,这也为我们开发本系统的经济成本开发周期减少,可以参考开源代码,开发出自己所需的功能,这样节省了公司部分经济支出。第四章第四章 系统整体结构分析系统整体结构分析4.14.1 系统的需求分析系统的需求分析办公自动化系统是对公司内部员工进行统一管理的系统。服务的对象是公司各阶层的员工。为提高效率,必须满足使员工的操作简捷方便、系统功能完善的条件。系统安全性系统安全性由于该系统采用了 B/S 结构,必要时可以通过互联网进行访问。基于这种特点,为防止系统被恶意攻击,同时为满足公司本身的管理制度,必须采用统一的用户身份验证措施来确保公司信息的安全。当用户登录时,判断用户的合法性。如果用户合法则根据用户角色登录到相应的系统平台实现其相应的功能,否则退回系统登录界面并进行提示。操作方便性操作方便性该系统的目的是为了帮助公司提高人员管理方面的效率,所以该系统的界面清晰易懂,界面保持一致性,让操作人员使用方便,不必在学习系统时花费过多的时间。满足公司员工管理的需求满足公司员工管理的需求由于该系统是公司实际管理过程的一个网络化缩影,是辅助公司人员管理的一种方式,所以系统涵盖公司的员工管理流程。其中包括员工的个人信息档案管理、部门的信息管理、员工的考勤管理、人员的权限管理。4.24.2 系统的总体设计系统的总体设计4.2.14.2.1 系统整体模块系统整体模块整个系统主要分为文件管理、共享下载、消息管理、公文流传、通知管理、内部论坛、人力资源管理、资产管理等。系统各模块又如下细分:文件管理:接收文件、传送文件、文件操作记录;共享下载:查看共享、上传共享、管理共享;消息管理:接收消息、发送消息、部门群发、发送记录、我的群组;公文流转:接收公文、发送公文、发送记录;通知管理:查看通知、发布通知、通知管理;新闻管理:浏览新闻、发布新闻;内部论坛:查看帖子、发布帖子、头像管理;工作日志:提交日志、日志记录、批阅日志、日志汇总;日程计划:撰写日程、我的日程、撰写计划、我的计划;工作总结:撰写月总结记录、管理撰写年度总结记录、管理总结分类;审批管理:提交审批、办理审批、申请记录;人力资源:在线考勤、考勤记录、所有考勤、部门考勤;通讯录:单位通讯录、提交办公通讯录;电子邮件:发送邮件;资产管理:资产录入、资产管理、资产报废、资产列表;权限设定:权限修改。4.34.3 系统角色及权限划分系统角色及权限划分系统角色分为:admin 总经理,部门经理,员工。系统权限的划分:Admin,总经理拥有系统所有模块的使用权限;部门经理除了权限设定,所有考勤功能模块外,其他权限与 admin 和总经理一样;员工享有除了人力资源所有模块,资产管理、权限设定,审批管理批阅日志,日志汇总,通告管理,发布新闻,管理共享,管理总结分类等一些管理性的功能外的基本权限。该系统是采用 B/S 结构,针对的用户是一个公司的全体员工。为确保系统的安全性,用户根据各自的角色登录实现各自的功能。该系统设置的员工角色有普通员工和系统管理员。普通员工只能实现一些基本的操作,如:个人上下班的考勤,添加、修改和删除未考勤的解释说明,浏览所有部门信息,浏览所有员工的信息,修改个人登录密码和浏览个人的工资信息;而系统管理员除了实现普通员工的操作外还有修改和删除原有部门,添加新部门,修改和删除原有员工,添加新员工。4.44.4 系统存储过程系统存储过程存储过程是存放在数据库中的一个脚本,是已保存的 Transact-SQL 语句的集合或对 Microsoft.NET Framework 公共语言运行时方法的引用,同时接收并返回用户提供的参数。在该系统中涉及的存储过程主要有获取、添加、修改和删除等方面的。涉及部门管理的存储过程如表涉及部门管理的存储过程如表 5.75.7 所示:所示:存储过程存储过程描述描述Pr_GetDepartments获取所有部门信息Pr_GetSingleDepartment获取单个部门信息Pr_AddDepartment添加新部门信息Pr_DeleteDepartment删除部门信息Pr_UpdateDepartment修改部门信息表 5.7 涉及部门管理的存储过程涉及员工管理的存储过程如表涉及员工管理的存储过程如表 5.85.8:存储过程存储过程描述描述Pr_GetSingleEmployee获取单个员工信息Pr_GetEmployeeByDepartment根据部门获取该部门的员工信息Pr_GetEmployeeLogin根据员工的名称、密码和登录角色获取员工的登录信息Pr_GetEmployeeLoginForUPwd根据员工的名称和密码获取员工的登录信息Pr_GetEmployees获取所有员工的信息Pr_AddEmployee添加新的员工信息Pr_DeleteEmployee删除员工信息Pr_UpdateEmployee修改员工信息Pr_UpdateEmployeePwd修改员工登录密码表 5.8 涉及员工管理的存储过程涉及工资管理的存储过程如表涉及工资管理的存储过程如表 5.95.9:存储过程存储过程描述描述Pr_GetSalary获取所有员工工资信息Pr_GetSalaryByEmployee根据员工号获取员工工资Pr_GetSalaryByMonths根据年月份获取员工工资Pr_GetSingleSalary获取单个工资Pr_AddSalary添加员工工资信息Pr_UpdateSalary修改员工工资信息表 5.9 涉及工资管理的存储过程涉及考勤管理的存储过程如表涉及考勤管理的存储过程如表 5.105.10:存储过程存储过程描述描述Pr_GetAttendanceExplains获取未考勤解释说明信息Pr_GetAttendances获取考勤信息Pr_GetAttendanceByEmployeeAndDate获取指定员工和指定时间的考勤信息Pr_GetCurrentAttendance获取指定时间的考勤信息Pr_GetSingleAttendance获取单个考勤信息Pr_GetSingleAttendanceExplain获取单个未考勤的解释说明Pr_AddAttendanceExplain添加未考勤解释说明Pr_AddNoNormalAttendance添加非正常的考勤信息Pr_AddOffAttendance添加下班的考勤信息Pr_AddOnAttendance添加上班的考勤信息Pr_DeleteAttendance删除考勤信息Pr_DeleteAttendanceExplain删除未考勤解释说明信息Pr_UpdateAttendanceExplain修改未考勤解释说明表 5.10 涉及考勤管理的存储过程第五章第五章 系统模块分析系统模块分析5.15.1 系统登录系统登录 Admin,总经理拥有系统所有模块的使用权限。图5.1 系统登录界面进入系统后:图5.2 系统主界面部门经理除了权限设定,所有考勤功能模块外,其他权限与 admin 和总经理一样;员工享有除了人力资源所有模块,资产管理、权限设定,审批管理批阅日志,日志汇总,通告管理,发布新闻,管理共享,管理总结分类等一些管理性的功能外的基本权限。5.25.2 考勤功能实现考勤功能实现5.2.15.2.1 在线考勤功能实现在线考勤功能实现各部门员工每天正常上下班考勤是否考勤,考勤时间,做相应记录。图5.3在线考勤功能图/先查询 有没有添加过上午考勤 COM.OA.Entity.users loginuser =Sessionloginuser as users; if (loginuser = null) this.Response.Write(string.Format(GetRedirect.REDIRECT, ./login.aspx); else int id = loginuser.u_id; string where = att_u_id= + id; IList ilist = attendanceBLL.Select(where); if (ilist.Count = 0)/如果为空 就直接添加 DateTime riqi = DateTime.Now; DateTime shangwu = DateTime.Now; DateTime xiawu = DateTime.Parse(1753-01-01); attendance att = new attendance(); att.att_date = riqi; att.att_forenoontime = shangwu; att.att_afternoontime = xiawu; att.att_u_id = loginuser.u_id; att.att_dept_id = loginuser.u_dept_id; attendanceBLL.Insert(att); this.Response.Write(string.Format(GetRedirect.WINALERT, 上午添加成功!); this.Response.Write(string.Format(GetRedirect.REDIRECT, kqMain.aspx); else List list = (List)ilist; attendance at = new attendance(); at = list0; string zuihou = at.att_forenoontime.ToString(yyyy-MM-dd);/数据库最后一天记录的日期 string xianzai = DateTime.Now.ToString(yyyy-MM-dd);/今天的日期 if (xianzai.Equals(zuihou)/相同最后日期 与今天日期相同? 相同不添加 不同添加 this.Response.Write(string.Format(GetRedirect.REDIRECT, kqMain.aspx); else DateTime riqi = DateTime.Now; DateTime shangwu = DateTime.Now; DateTime xiawu = DateTime.Parse(1753-01-01); attendance att = new attendance(); att.att_date = riqi; att.att_forenoontime = shangwu; att.att_afternoontime = xiawu; att.att_u_id = loginuser.u_id; att.att_dept_id = loginuser.u_dept_id; attendanceBLL.Insert(att); this.Response.Write(string.Format(GetRedirect.WINALERT, 上午添加成功!); this.Response.Write(string.Format(GetRedirect.REDIRECT, kqMain.aspx); 下午考勤调用方法与上午考勤方法一致。在此处我们考虑到用户的体验,在提交成功,我们使用 jQuery 技术实现友好的提示方式。页面需要引用 jquery.jmodal.js 这个 jQuery 插件。实现的代码:$.fn.jmodal( title:消息, content:您好,您已经考勤, buttonText:确认, okEvent:function(e) alert(jmodalll be closed after u click me:-); );/判断是否考勤users loginuser =Sessionloginuser as COM.OA.Entity.users; if (loginuser = null) this.Response.Write(string.Format(GetRedirect.ALLREDIRECT, ./login.aspx); else /通过登录人 ID 查询 /1 已经有 今天考勤不能继续添加否则可添加 int id = loginuser.u_id; string where = att_u_id= + id; IList ilist = attendanceBLL.Select(where); if (ilist.Count = 0)/没数据 跳转传 2 this.Response.Write(string.Format(GetRedirect.REDIRECT, rlzy_zxkq.aspx?at=2); else List list = (List)ilist; attendance at = new attendance(); at = list0; string time = DateTime.Now.ToString(yyyy-MM-dd); string t = at.att_date.ToString(yyyy-MM-dd); if (time.Equals(t)/如果最后一条记录日期与今天相同 跳转传1 this.Response.Write(string.Format(GetRedirect.REDIRECT, rlzy_zxkq.aspx?at=1); else/如果最后一条记录日期与今天不相同 跳转传 2 this.Response.Write(string.Format(GetRedirect.REDIRECT, rlzy_zxkq.aspx?at=2); 5.2.25.2.2 在在线考勤查询功能实现线考勤查询功能实现 该页面记录员工每天上下班考勤的功能,可以查看员工有没有正常考勤。员工也可以查询自己的考勤记录。图5.4 我的考勤记录 % COM.OA.Entity.users loginuser =Sessionloginuser as COM.OA.Entity.users;/用户打卡 if (loginuser = null) this.Response.Write(string.Format(GetRedirect.ALLREDIRECT, ./login.aspx); else int userid = loginuser.u_id; string where = att_u_id= + userid; System.Collections.Generic.IList il = COM.OA.BLL.attendanceBLL.Select(where); System.Collections.Generic.List list = (System.Collections.Generic.List)il; list.Reverse(); foreach (COM.OA.Entity.attendance l in list) % chidao) sss = 上午迟到; else sss = shangwu.ToString(HH:mm:ss); /下午时间判断 string xwshijian = l.att_afternoontime.ToString(HH:mm:ss); string xxx =xwshijian; /用户名当前登录用户 int usersid = loginuser.u_id; string userwhere = u_id= + usersid; System.Collections.Generic.IList usersilist = COM.OA.BLL.usersBLL.Select(userwhere); System.Collections.Generic.List userslist = (System.Collections.Generic.List)usersilist; COM.OA.Entity.users u = new COM.OA.Entity.users(); u = userslist0; int emid = u.u_em_id; string emwhere = em_id= + emid; System.Collections.Generic.IList emilist = COM.OA.BLL.employeeBLL.Select(emwhere); System.Collections.Generic.List emlist = (System.Collections.Generic.List)emilist; COM.OA.Entity.employee em = new COM.OA.Entity.employee(); em = emlist0; string emName = em.em_name; % | 5.2.35.2.3 所有考勤记录显示和部门考勤所有考勤记录显示和部门考勤所有考勤记录只有管理员和总经理可以查看,部门考勤情况部门经理可以查看。具体实现方法和考勤情况实现方法一样。图5.5 所有考核记录5.35.3 通讯录通讯录 5.3.15.3.1 通讯录查询通讯录查询图5.6 通讯录系统查询图通过对数据源绑定进行显示与查询。点姓名可以对用户信息进行修改。具体修改方式就一一列出,都是通用的修改方法。5.3.25.3.2 通讯录的添加通讯录的添加 通讯录涉及到工作人员的人员信息,通过对所有个人通讯录的查询,自己可很快地找出所需要联系的人员信息,并方便地通知他们参加会议或发送邮件等等并可以登记查询,这就要涉及通讯信息的准确性,还有隐私性,这就要有明确的权限设置。当然,之前有过权限的相关介绍。图5.7通讯录的添加if (Page.IsValid) /取姓名 ID int uid =Int32.Parse( this.ddlUname.Text); users us = usersBLL.Select(uid); int bumenid = us.u_dept_id; /取部门 ID int bid =Int32.Parse( this.ddlBumen.Text); if (!bumenid.Equals(bid) this.Response.Write(string.Format(GetRedirect.WINALERT, 此人不是本部门人员请重新选择); this.Response.Write(string.Format(GetRedirect.REDIRECT, tijiaobangongtongxunlu.aspx); else .第六章第六章 总结与展望总结与展望6.16.1 总结总结OA 系统实现了公司的无纸化办公,在一定的程度上节约一定的资源,也提高了员工办事的效率。虽自己所开发的考勤模块(含通讯录)并不复杂,功能基本实现,但还是未达到设想的效果。这表明自己对 开发所花的时间不足,还需继续努力。在 OA 系统开发当中,也接触到自己以前尚未接触的技术,比如 jQuery,现在还是有点似懂非懂的感觉。这需要自己今后花时间去整理学习。对三层架构有所了解,弥补以前在学校朦胧的理解。总之,开发当中,代码的规范,新知识的学习,以及自己自主学习能力都得到提高。在今后开发的当中,自己的能力还能得到更大的提高,为自己今后更好的开发做好铺垫。系统还有许多需要完善的地方,比如登录界面验证码的验证,部分页面的美化,一个好的系统除了具有很好的功能外,也要有一个很好的用户体验。这也是我们将来开发所需注意的6。6.26.2 展望展望随着网络和信息时代的发展,用户在进行业务数据处理时,面对越来越多的数据,如果自动化办公软件能帮助用户做一些基本的商业智能(BI)分析工作,帮助用户快速地从这些数据中发现一些潜在的商业规律与机会,提高用户的工作绩效,将对用户产生巨大的吸引力。在微软的 Office 2007 版本中已经提供了一些基本的商业智能的功能,如通过不同颜色显示数据的大小和按照进度条来反应数值的大小等,相信未来会有更多的这方面功能。自动化办公 OA 软件还有一些其它的发展趋势,从现在国内 OA 产品,显示今后 OA 软件本身将能更加智能化,如可自定义邮件、短信规则、语音提示、强大自我修复功能、人机对话、影视播放、界面更加绚丽多彩等。未来 OA 在充分的智能支持下,也更会体现人性化、达到人性化之目的,强调易用性、稳定性、开放性,强调人与人沟通、协做的便捷性,强调对于众多信息来源的整合,强调构建可以拓展的管理支撑平台框架,从而改变目前“人去找系统”的现状,实现“系统找人”的全新理念,能够根据不同员工的需要进行功能组合,将合适的功能放在合适的位置给合适的员工访问,实现真正的人本管理。虽然这只是公司内部的一个产品,但还是需要按照 OA 产品的一个趋势,这样才能使公司的工作效率得到很大的提高,为公司争取更多的利益。在未来的开发当中,会将更多的用户体验考虑进系统中,让系统更好的为公司服务。致致 谢谢在论文完成之际,我首先向关心帮助和指导我的指导老师严圣华老师表示衷心的感谢并致以崇高的敬意!在毕业设计中,遇到了很多技术上的难题,一直得到 老师悉心指导和曾经带过计算机课程的老师的认真执教,给了我莫大的帮助, 老师以其渊博的学识、严谨的治学态度、求实的工作作风和他敏捷的思维给我留下了深刻的印象,我将终生难忘。他们无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作都有一种巨大的鼓舞和帮助。整个毕业设计过程中他们对我的设计非常关心,给我提出了许多必要的要求并给予了及时的指导,让我在设计中深受启发。在开发过程中遇到很多技术难题,经过诸位同事的悉心指导,解决的了项目开发中遇到的部分问题,以及在在界面设计时的及时指导,在我毕业设计的这段时间里,得到他们的鼓励和支持,我的设计才得以完成。严格要求、诲人不倦的良师风范使我十分钦佩和敬仰。也从他们身上学到了很多东西。再一次向他表示衷心的感谢,感谢他为学生营造的浓郁学术氛围,以及学习、生活上的无私帮助! 值此论文完成之际,谨向 老师和诸位老师致以最崇高的谢意!在学校的学习生活即将结束,回顾五年多来的学习经历。为此,我向热心帮助过我的所有老师和同学表示由衷的感谢!在我即将完成学业之际,我深深地感谢我的家人给予我的全力支持!最后,衷心地感谢在百忙之中评阅论文和参加答辩的各位讲师。参考文献参考文献1ASP.net 应用程序开发教程(C#版)宋楚平2需求分析与系统设计Leazek A.Maciaszek3S
展开阅读全文