1、随着中国建筑业的快速发展,项目规模数量在不断的扩大,牵涉到了施工流程管理,参与人员的管理,资金发放的管 理 信 息 系 统 课 程实 验 三系 统 分 析班 级: 工商管理 112 学 号: 2011091188 姓 名: 高蓉 II摘 要管理等问题,这些问题信息量大,信息处理方式多样,所以项目管理系统的改革已经成了必然。课题结合工程施工项目的特点,设计了系统数据库,完成了申请,设计,立项,施工,初验,终捡,文档管理,资金预算,项目搜索,会议公告,用户管理功能。系统是以my eclipse为开发平台,mysql为数据库,tomcat 6.0为服务器,java为编程语言,在SSH框架下开发。系统
2、具备完善的权限管理,提供合理的查询和必要的手工调整功能,运行流畅,便于维护。关键词:工程项目管理系统;流程控制;SSH;MVCI目录第一章 课题背景 .11.1 提出问题 .11.2 国内外研究状况 .11.3 实现目标 .21.4 论文组织结构 .2第二章 相关技术 .32.1 引言 .32.2MVC 模式 .32.3 实现框架 .42.3.1 Struts 框架 42.3.2 Hibernate 框架 .52.3.3 Spring 框架 .52.4 开发环境 6第三章 需求分析 .73.1 系统主要功能 73.2 系统用例图 7第四章 系统设计架构 .104.1 系统设计目标和原则 104
3、.2 系统功能架构 104.3 系统主要功能时序图 114.3.1 项目管理 .114.3.2 项目验收 .124.3.3 会议记录 .124.3.4 项目搜索 .134.3.5 系统人员管理 .144.3.6 公告栏管理 .144.4 系统类图 154.5 数据库设计 17第五章 系统实现 .205.1 项目管理功能模块 205.1.1 功能说明 .20II5.2 项目验收功能模块 .225.2.1 功能说明 .225.2.2 实现过程 .225.3 会议记录功能模块 .235.3.1 功能说明 .235.3.2 实现过程 .235.4 项目搜索功能模块 .255.4.1 功能说明 .255
4、.4.2 实现过程 .255.5 公告功能 265.5.1 功能说明 .265.5.2 实现过程 .265.6 系统管理 275.6.1 功能说明 .275.6.2 实现过程 .275.7 系统权限说明 29结束语 .30致谢 .31参考文献 .321第一章 课题背景1.1 提出问题虽然没有项目管理,项目有可能成功。但是有了项目管理,项目的成功率就会有明显的提高。对于企业来说,没有项目管理,项目施工的人员,时间,技术等条件都变得不可控制,从而使得亏损的风险增大对于建筑机构来说,没有项目管理会使得项目的分工,交付的时间等无法准确确定。因此为了提高项目的效率和效益,减少工程施工项目过程中的各种因素
5、的影响,我们需要引入项目管理系统。随着社会的经济发展,人们也拥有了越来越多的机会参与到实际的项目中去了。随着人们参与人数的增加,项目的增加,人们与项目关系的复杂化,项目资金的具体化,管理工程施工项目的难度也不断的增加。如果依然采用人工记录的方式,在项目变更,人数变化,资金发放等方面的操作难度将大大增加,错误率也会大大增加,而且也不便于长久的存储,后期的查找,更新,维护等。工作将会变得十分困难。所以,如果现在采用一套专门的系统管理建筑施工项目的话,不仅人力物力减少,出现错误的几率也会减少,对于查找等操作将会变得很简单,而且电子版的数据将更容易存储,转移。所以本课题的意义在于:充分发挥管理系统的先
6、进性,从而提高工程施工项目管理的效率,降低低人工成本,便于后期的各种操作。1.2 国内外研究状况目前在国外,工作分解结构、甘特图技术、网络计划技术、项目控制技术、项目管理信息系统等传统的项目管理方法已相对成熟。针对上述传统的项目管理方法的缺陷,无法处理海量项目的问题。一些学者对其中具体的技术方法进行了改进,尤其在对资源约束下的项目计划问题(RCPSP)的研究方面,已经出现了大量的研究成果。这些成果分为两类,一是对原有模型的改造,二是在算法上下工夫,它们都从经典的RCPSP 发展而来。国外的研究中在对传统方法的改进方面,其实很多研究都集中在算法方面,在实际的项目实践中没有起到应有的作用。进入20
7、 世纪 80年代后,随着项目管理的多元化发展,有些研究开始把焦点投向项目组织、项目人力资源、项目采购等方面的研究,特别是在项目组织方面,出现了更多的研究成果。还有是在项目管理知识体系方面的研究,项目管理知识体系由美国项目管理学会最先提出,从1976年发展到现在,项目管理知识体系已经形成9个知识领域和5 个管理过程所交织出 39个具体的项目管理过程,从而实现了对项目管理领域有关知识的模块化管理,项目管理从业人员也有了可供参考的科学依据。为了使项目管理知识体系的基本结构固定下来,国际标准化组织曾于1997年按项目管理知识体系指南( 简称PMBOK)为标准制订了10006标准。美国项目管理研究学会在
8、项目管理知识体系的研发工作,以及以此为基础发展起来的项目管理专业培训和资质认证工作,为项目管理的理论研究和推广做出了巨大的贡献。2在中国项目管理兴起时间较晚,从八十年代发展至今,经过三十年的发展。虽然有所成长,但相比发达国家,在管理水平上还有相当大的差距。在实际施工中导致人力,自己,资源等出现浪费进度没有得到有效的管理,从而使得项目延期、成本增加,或是质量低造成返工等现象在项目频频发生。在对国内外施工项目管理系统学习和借鉴的基础上,经过对需求的分析,设计,开发,测试,做出这个工程项目施工管理系统。1.3实现目标针对工程项目施工管理系统的功能、性能方面的需求,通过对其他管理项目的研究,本系统主要
9、实现以下目标:1、 新项目的申请,立项,设计,施工,初验,终捡;2、 项目进度查看,编辑;3、 项目资金使用情况查看,添加,编辑,删除;4、 人员资料的查看,添加,编辑,删除;5、 项目基本情况及进度导出功能;6、 个人信息管理功能;7、 公告栏查看,管理;8、 项目会议记录查看,添加,编辑,删除;9、 搜索项目功能。1.4 论文组织结构第一章主要说明工程施工项目管理系统的理念、产生的背景、现状和发展、论文组织结构。第二章主要说明工程施工项目管理系统的相关技术。第三章主要说明工程施工项目管理系统的需求分析。第四章主要说明工程施工项目管理系统的程序的详细设计。第五章主要说明工程施工项目管理系统的
10、运行和测试。第二章 相关技术2.1 引言本程序以 my eclipse 为开发平台,mysql 为数据库,tomcat 6.0 为服务器,java 为编程语言,在 SSH 框架下开发基于 SSH 框架经行设计。2.2MVC 模式 MVC 模式是“Model-View-Controller“的缩写,中文翻译为“模式-视图-控制器“。MVC 应用程序总是由这三个部分组成。Event( 事件)导致 Controller 改变 Model 或 View,或者同3时改变两者。只要 Controller 改变了 Models 的数据或者属性,所有依赖的 View 都会自动更新。类似的,只要 Control
11、ler 改变了 View,View 会从潜在的 Model 中获取数据来刷新自己。MVC 模式最早是 smalltalk 语言研究团提出的,应用于用户交互应用程序中。smalltalk 语言和 java 语言有很多相似性, 都是面向对象语言,很自然的 SUN 在 petstore(宠物店 )事例应用程序中就推荐 MVC 模式作为开发 Web 应用的架构模式。MVC 模式是一种架构模式,其实需要其他模式协作完成。在 J2EE 模式目录中,通常采用 service to worker 模式实现,而 service to worker 模式可由集中控制器模式,派遣器模式和 Page Helper 模
12、式组成。而 Struts 只实现了 MVC 的 View 和 Controller 两个部分,Model 部分需要开发者自己来实现,Struts 提供了抽象类 Action 使开发者能将 Model 应用于 Struts 框架中。MVC 模式是一个复杂的架构模式,其实现也显得非常复杂。但是,我们已经总结出了很多可靠的设计模式,多种设计模式结合在一起,使 MVC 模式的实现变得相对简单易行。 Views 可以看作一棵树,显然可以用 Composite Pattern 来实现。Views 和 Models 之间的关系可以用 Observer Pattern 体现。Controller 控制 Vie
13、ws 的显示,可以用 Strategy Pattern 实现。Model 通常是一个调停者,可采用 Mediator Pattern 来实现。视图(View)代表用户交互界面,对于 Web 应用来说,可以概括为 HTML 界 面,但有可能为XHTML、XML 和 Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC 设计模 式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传
14、递给控制和模型。模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC 最主要的核心。目前流行的 EJB 模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的 划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC 设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设 计依据
15、。抽象与具体不能隔得太远,也不能太近。MVC 并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可 以用对象编程来做比喻,MVC 定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据 保存(持续化)。比如将一张订单保存到数据4库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。控制(Controller) 可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,
16、它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以 完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应 反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。2.3
17、 实现框架2.3.1 Struts 框架Struts2 和 Struts 的构建是社区开发模式的最好实践和证明。事实上,第一版本的 Struts 设计的第一目标就是使 MVC 模式应用于 web 程序设计。 在过去 10 年,Struts 在更好的 web 应用方面所做的工作是值得肯定的。在某些方面,Struts 社区注意到这一框架的局限性,但在这个活跃的社区里,自动识别弱点和顽强不屈的精神,使得克服这些弱点是不困难的。 在深入学习 MVC 运行模式并同时引入一些新的建筑学方面的设计理念后,新的 Struts2 框架结构更清晰,使用更灵活方便。 这一新的结构包含应用逻辑的横切面拦截器,基于注释
18、的配置以减少和去除 XML 形式的配置文件,功能强大的表达式语言,支持可更改、可重用 UI 组件的基于微 MVC 的标签库。Struts2 有两方面的技术优势,一是所有的 Struts2 应用程序都是基于 client/server HTTP 交换协议,The Java Servlet API 揭示了 Java Servlet 只是 Java API 的一个很小子集,这样我们可以在业务逻辑部分使用功能强大的 Java 语言进行程序设计。Struts2 是一个 web 应用框架。它不是一个 Struts 的新的发布版本,而是一个全新的框架。Struts2 是第二代基于 Model-View-Co
19、ntroller (MVC)模型的 web 应用框架。 Struts2 是 java 企业级web 应用的可扩展性的框架。 它是 WebWork 和 Struts 社区合并后的产物。 这一版本的 Struts2 声称,Struts2 会接近于原先版本 Struts,并且会更容易使用。 struts 2 没有继承 struts 1 的血统,而是继承了 webwork 的血统。2.3.2 Hibernate 框架Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate
20、可以应用在任何使用5JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任。Hibernate 中提供了两级 Cache,第一级别的缓存是 Session 级别的缓存,它是属于事务范围的缓存。这一级别的缓存由 Hibernate 管理的,一般情况下无需进行干预;第二级别的缓存是 SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 Hiberna
21、te 还为查询结果提供了一个查询缓存,它依赖于第二级缓存。Hibernate 对象关系映射提供延迟的与非延迟的对象初始化。非延迟加载在读取一个对象的时候会将与这个对象所有相关的其他对象一起读取出来。这有时会导致成百的(如果不是成千的话)select 语句在读取对象的时候执行。这个问题有时出现在使用双向关系的时候,经常会导致整个数据库都在初始化的阶段被读出来了。当然,你可以不厌其烦地检查每一个对象与其他对象的关系,并把那些最昂贵的删除,但是到最后,我们可能会因此失去了本想在 ORM 工具中获得的便利。2.3.3 Spring 框架Spring 是一个开源框架,它由 Rod Johnson 创建。
22、它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。它有如下几个特点:1、轻量从大小与开销两方面而言 Spring 都是轻量的。完整的 Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布。并且 Spring 所需的处理开销也是微不足道的。此外,Spring 是非侵入式的:典型地,Spring 应用中的对象不依赖于 Spring 的特定类。2、控制反转 Spring
23、 通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为 IoC 与 JNDI 相反 不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。3、面向切面 Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑 仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。4、容器Spring
24、包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个 bean 如何被创建 基于一个可配置原型(prototype),你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例 以及它们是如何相互关联的。然而,Spring 不应该被混同于传统的重量级的 EJB 容器,它们经常是庞大与笨重的,难以使用。65、框架Spring 可以将简单的组件配置、组合成为复杂的应用。在 Spring 中,应用对象被声明式地组合,典型地是在一个 XML 文件里。Spring 也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。2.4 开发环境平台
25、:windows xp数据库:mysql 5.0.20服务器 tomcat 6.0浏览器 IE开发环境 my eclipse第三章 需求分析3.1 系统主要功能在前期对于项目施工需求分析的基础上,本系统主要实现从项目的立案,施工人员的管理,项目的管理,资金的发放,项目的验收,公告栏管理,搜索项目,个人信息管理,会议记录等九个方面进行研究,根据这些功能可以完成一个项目从创建到结束的整个生命周期。3.2 系统用例图用例图定义:描述角色和用例之间的关系,着重展示系统必须实现的功能,用于在需求分析阶段分析客户需求。管理员的用例图如图3-1:7图3-1 管理员用例图项目经理用例图如图3-2:图3-2 项
26、目经理用例图8施工人员用例图如图3-3:图3-3 施工人员用例图下面对系统用例图的功能点做进一步的解释:1、项目管理9这是整个系统的最重要功能。可以进行项目的基本信息操作;项目进度管理管理;项目人员调配;项目资金操作。2、项目验收这个功能用在项目完成后使用的。在一个项目结束的时候可以进行项目验收的管理。3、会议记录主要完成项目相关会议的记录。在一个项目开了主题会议的时候,可以在这个功能里记录会议的相关信息。4、项目搜索主要完成根据使用者条件搜索出想要的项目。在面对海量的数据的时候,可以使用这个功能帮助使用者筛选出需要的项目。5、用户管理主要用来管理系统用户。可以管理整个系统的所有用户的信息以及
27、自己的信息。系统可以根据使用者的权限开放所有用户信息管理的接口。6、公告栏主要用来实现系统公告栏的管理。在这个功能里,用户可以查看信息列表,点击进入可以看到具体的信息。第四章 系统设计架构4.1 系统设计目标和原则项目管理系统的设计目标和原则需要遵从一下几点:1、简洁实用原则:操作界面简洁为上,重点突出、结构合理、内容充实、功能完善。平台以数据跟踪显示为根本出发点,充分考虑用户的需求和操作习惯,操作简便实用,数据检索方便快捷,检索响应迅速、结果准确,呈现给用户的内容清晰,结构合理。2、安全高效原则:行业资源数据非常机密,因此系统软硬件设计方案都要充分考虑数据的安全性,具有比较完善的数据备份机制
28、。平台设计和开发时要对未来数据量给予充分考虑,能适应未来数据增长的需求,通过优化数据显示算法保证平台在大数据量的环境下安全、高效、稳定的运行。3、适应性和可扩展性原则:系统平台具有灵活性和适应性,未来能根据用户需求不断改进结构、增加内容,适应平台发展要求,可扩展性良好。4.2 系统功能架构系统主要分为八个大的功能模块,分别是:项目管理,项目验收,会议记录,项目搜索,个人管理,系统管理,公告板,系统帮助。每个功能模块下又分为几个功能点。见图4-1,各模块实现101、项目管理为新建或者进行中的项目提供信息,人员,进度,资金的操作可以新建项目,上传在申请,立项,设计,施工,初验,终捡的文件,可以进行
29、人员的调度,同时还提供了下载功能,便于管理员对施工过程中所产生的文件进行管理;2、项目验收在项目完成之后,提供给用户评价项目的操作,其中包含施工这评价,项目经理评价,管理员评价;3、会议记录当项目相关会议展开时,可以用来管理项目会议同时可以记录开会内容,开会时间方便总结施工中的经验,有利于未来施工进度;4、项目搜索提供给用户在大量数据时候按条件搜索到自己需要的项目信息,可以超找某一个项目经理在负责的所有项目,可以看到施工人员正在参与哪些项目;5、系统管理和“ 个人管理”提供给有权限的用户管理系统中存在的用户,可以添加新用户,可以修改用户的权限等;6、公告功能给系统一个公告板的存在,能够让用户查
30、看公告信息,方便施工人员能够及时准确的知道最近发生的事情。工程项目施工管理系统项目管理项目验收系统管理系统帮助项目搜索个人管理会议记录项目基本信息管理项目进度管理项目参与人员管理项目资金管理项目验收评价管理会议记录管理项目搜索管理用户个人信息管理管理员管理个人信息系统用户帮助管理公告功能系统公告栏管理基本信息导出11图4-1 系统架构图4.3 系统主要功能时序图4.3.1 项目管理系统管理里面包含了四个大的功能:项目信息查看项目进度管理项目人员调配项目资金管理。1、项目信息查看包括详细信息查看添加项目编辑项目信息删除项目信息;2、项目进度管理包括项目评价项目登记评定;3、项目人员调配包括人员信
31、息查看,人员导入导出信息;4、资金管理包括资金用途查看编辑资金用途删除资金用途。我以项目信息查看和项目信息编辑为例画出时序图如图4-2:图4-2 项目管理时序图4.3.2 项目验收项目验收包括功能:项目评价。用户可以在项目评价中填写评语以及等级给定。这里以项目评价列表显示为例画出时序图 4-3:12图 4-3 项目验收用例图4.3.3 会议记录会议记录包括功能:会议记录。用户可以在这个功能中用户可以添加项目会议填写项目会议信息,查看已经存在的记录,编辑已经存在的记录,删除记录。下面以查看会议记录为例画出时序图 4-4:图 4-4 会议记录用例图4.3.4 项目搜索13项目搜索模块实现是项目的搜
32、索功能。用户可以按照搜索条件“客户名称”“项目经理”“施工人员”“项目名称” ,外加用户自己填写的搜索关键字,这就构成了搜索条件,然后在页面下方显示搜素结果。如果搜索关键字为空,则会显示所有的项目。下面为搜索过程的时序图 4-5:图 4-5 项目搜索用例图4.3.5 系统人员管理系统人员管理包括系统用户管理,个人信息管理。在个人信息管理中界面会显示当前用户的信息。系统会根据当前用户的角色判断是否为管理员,如果是,则会开放系统用户管理功能。这个功能可以编辑用户信息,删除用户。以下以系统用户查看以及用户信息编辑为例画出时序图 4-6:图 4-6 人员管理用例图144.3.6 公告栏管理公告栏管理提
33、供了公告栏功能给用户。其中包括了公告信息的显示,查看和编辑,删除。这里以系统显示已经存在的公告信息为例画出时序图 4-7:图 4-7 公告栏管理用例图4.4 系统类图用户类图如图 4-8:15图 4-8 用户类图资金管理如图 4-9:图 4-9 资金管理类图项目管理如图 4-10:16图 4-10 项目管理类图4.5 数据库设计MySQL 数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL )进行数据库管理,并且是开源的。结合本系统的实体对象和功能模块,存在实体“用户”“ 项目”“公告”“会议”“验收”“ 资金” ,然后加上“用户 ”和“项目” 之间的关系,所以该系统需要使用 6 张
34、表。本系统使用 6 张数据库表:分别为moneymanagement,project , user,userproject,meeting ,notice ,如下表 4-1 到表 4-6Moneymanagement: 主要使用在项目资金的发放的具体情况,如下表 4-1;表 4-1 资金管理数据库表属性 类型 是否为空 键 默认值id Int(11) No Pri NulluserNum Int(11) Yes NulluserWhere Varchar(225) Yes NulluserReason Varchar(225) Yes NulluserFor Varchar(225) Yes
35、NullComments Varchar(225) Yes NullcreateTime datetime Yes NullProjectid Int(11) Yes Mul Null17Project: 主要使用在系统存储项目的各个相关信息,包括客户名,项目名等,如下表 4-2;表 4-2 项目数据库表属性 类型 是否为空 键 默认值id Int(11) No Pri NullcustomerName Varchar(225) Yes NullprojectName Varchar(225) Yes NulldeveNum Int(11) Yes NullcreateTime datetim
36、e Yes Nullstate Int(11) Yes NulltotalMoney Int(11) Yes NulltotalOutPut datetime Yes NullpalnFinishTime datetime NullComments Varchar(255 ) NullAcceptance Int(11) NNI NulluserId Int(11) Yes Mul NulldevelopComents Varchar(225) Yes Nullproject managerComents Varchar(225) Yes NulladminComents Varchar(22
37、5) Yes NullfinalResult Varchar(225) Yes Nulluser: 主要使用在本系统的用户的查看,创建,修改,删除等操作,具体包括系统用户的名字,性别,角色等,这里可以根据用户的角色来确定用户的操作权限,如下表 4-3;表 4-3 用户数据库表属性 类型 是否为空 键 默认值id Int(11) No Pri Nullusername Varchar(225) Yes UNI NullMale Varchar(225) Yes NullRole Varchar(225) Yes Nullpassword Varchar(225) Yes NullrealName
38、 Varchar(225) Yes NullAge Int(11) Yes NullphoneNum Varchar(225) Yes NullIDCard Varchar(225) Yes Nullcomments Varchar(225) Yes Nullemail Varchar(225) Yes NullcreatedTime Datetime Yes NullBirthday Datetime Yes Nulluserproject:主要使用在项目经理,施工人员与项目的对应关系,如下表 4-4;表 4-4 用户项目数据库表属性 类型 是否为空 键 默认值Usrid Int(11) N
39、o MULProjected Int(11) No PRI18id Int(11) No PRIMeeting:主要使用在会议记录,编辑,删除的时候,如下表 4-5;表 4-5 会议数据库表属性 类型 是否为空 键 默认值Id Int(11) No PRI NullAttenders Varchar(255) Yes NullContents Varchar(255) Yes NullTitle Varchar(255) Yes NullmeetingDate Datetime Yes NullProject_id Int(11) Yes Mul NullNotice:主要用于管理员管理系统的
40、公告栏,如下表 4-6;表 4-6 公告栏数据库表属性 类型 是否为空 键 默认值Id Int(11) No PRI NullUser Varchar(255) Yes NullContents Longtext Yes NullTitle Varchar(255) Yes NullmeetingDate Datetime Yes Null第五章 系统实现5.1 项目管理功能模块5.1.1 功能说明项目的成功与否与项目开发过程中的监控管理密不可分。项目管理功能模块的设计主要是为了从项目开始到最终结束提供一个全程的管理监控,确保在项目开发过程中时时刻刻受到管理,从而推动整个项目开发流程按部就班的
41、进行,并且可以根据项目调配参与的人员,对项目进展进行显示,对项目使用资金进行登记。通过这样全方位的管理,可以使项目的进行更加顺利,人力,资金分配的更加合理。这部分模块功能主要是新建项目的输入,当前项目的查看,信息编辑,删除,当前项目进度管理,人员调配,资金发放登记。5.1.2 实现过程在用户登录成功之后,系统显示主功能界面。点击项目管理功能模块会有四个具体的功能按钮。点击项目基本信息查看,系统会调用 com.njau.project.web 这个包中的类 ProjectAction,根据struts.xml,然后调用这个类中的方法 ListProject()。如果响应成功,系统会转入界面Lis
42、tProjectInfo.jsp 显示项目列表。在这个界面中有添加,编辑,删除功能选项。查看 struts.xml 可以知道,如果点击编辑功能,会调用 ProjectAction 类中的方法 findProjectforupdate();点击删除功能,19会调用 PorjectAction 类中的方法 delProject()。项目进度管理,项目人员管理,资金发放功能和项目信息查看实现方式一样。编辑项目部分代码如下:Project project = projectService.findById(pid);/通过界面上的项目pid去数据库找到相应的项目,并且封装成Project类型的变量 p
43、rojectList users = projectService.getManger();/将数据库中的所有项目经理都查找出来,并且封装成一个数据类型是User 的ListActionContext context = ActionContext.getContext();context.put(“users“, users);context.put(“project“, project);/在编辑界面显示上述两个封装好的信息在更新好的项目时,利用一段 javascript 代码实现function submitForm()document.getElementById(“editProje
44、ctForm“).submit();然后在struts.xml中找到调用方法为ProjectAction类中的方法updateProject(),然后项目的新的信息就保存了到数据库中。用户主界面如图5-1(a)20(b)图 5-1 用户主界面5.2 项目验收功能模块5.2.1 功能说明项目验收功能模块的设计主要是为了在项目完成的时候,各种权限的用户(分为三种:管理员,项目经理,施工人员)能够对项目的成果进行一次评价,然后给出最终的项目等级(分为三种:不通过,通过,优秀)。系统的使用者能够通过这个功能查看已经完成的项目的总结以及评价,等级。这部分模块功能主要是管理员,项目经理,施工人员对项目的评
45、价以及管理员对项目最终结果评定。5.2.2 实现过程在用户登录成功之后,系统显示主功能界面。点击项目评价,系统会根据 jsp 页面的 herf = “ListProjectpj”在 struts.xml 中找到对应的动作 com.njau.project.web 包中的 AcceptaceAction 类中的方法 listAcceptance(),这样页面 projectpj.jsp 上就显示了可以评价的项目。如果点击对应的编辑按钮,则可以在可以在 struts.xml 中找到相应的方法,从而找到方法 findAcceptance()。相应的代码如下:Acceptance acce = acc
46、eptance.findbyId(id);/根据界面项目id找到评价,并且封装成Acceptance结构的对象 acce中21System.out.println(acce.getProject().getProjectName();/将项目名字直接在评价界面显示,这个名字是不可更改的,所以直接显示System.out.println(acce.getId();ActionContext context = ActionContext.getContext();Project project = acce.getProject();User m = project.getManager();L
47、ist us = project.getUsers();/把这个项目的参与施工人员都装入一个List中User u = (User)ActionContext.getContext().getSession().get(“user“);/获取当前系统登录用户的名字for(User uu : us) if(uu.getUserName().equals(u.getUserName() isU = “true“;/将这个项目的施工人员的名字和当前用户的名字对比,如果名字一致,则证明当前用户从事这个项目,所以他将有评价这个项目的权力项目验收主界面如图5-2图 5-2 项目验收截图225.3 会议记录
48、功能模块5.3.1 功能说明无论是何种工作,都需要经常展开会议。开会能够让组员之间项目了解各自目前的工作进展,从而调整自己的工作进度,亦或是在遇到难题的时候可以在开会时提出寻求帮助,从而做到自己解决难题,组员以后遇到同样的问题就能顺利的解决,亦或是集思广益解决工作中的难题。所以会议记录功能很重要。这部分功能模块功能主要是提供给系统用户一个简单的会议记录功能,能够选定会议项目主题,主要参与人员,以及会议记录。5.3.2 实现过程在用户登录成功之后,系统显示主功能界面。点击会议管理,系统会根据当前jsp页面在struts.xml中找到对应的方法com.njau.project.web包中的list
49、Meeting()。然后在meeting.jsp界面中显示所有的会议记录。在这个界面中有添加,编辑,删除会议记录的功能选项。如果点击编辑选项,系统会在struts.xml中找到对应动作,com.njau.project.web包中的findMeeting()方法,然后进入editMeeting.jsp界面,显示这个项目的详细信息。然后就可以在原数据的基础上编辑新的数据。在保存新的数据时,按了submit 之后根据function submitForm() document.getElementById(“userform“).submit();找到对应的动作 com.njau.project.web 包中的 updateMeeting()方法Meeting meeting = meetingService.findbyId(pid);meeting.setAttenders(attenders);meeting.setContents(contents);meeting.setTitle(title);/更新修改过的会议信息,然后保存数据库添加,