第一章 概述............................................................................................................................... 5javascript
1.1 课程设计的核心任务.........................................................................................................6java
1.2 课程设计工做进程.........................................................................................................7node
第二章 需求分析................................................................................................................................... 8web
2.1 用户需求.................................................................................................................................. 9算法
2.1.1 业务需求....................................................................................................10数据库
2.1.2 商业需求....................................................................................................11安全
2.1.3 特殊需求.................................................................................................... 12服务器
2.2 可行性分析.................................................................................................... 13网络
2.2.1 技术可行性....................................................................................................14架构
2.2.2 经济可行性....................................................................................................15
2.3 系统功能....................................................................................................16
第三章 概要设计....................................................................................................17
3.1 系统设计思想....................................................................................................18
3.2 系统(或网络)整体结构....................................................................................................19
3.2.1 项目系统架构图....................................................................................................20
3.2.2 E-R图.................................................................................................... 22
3.3数据库设计.................................................................................................... 23
第四章详细设计.................................................................................................... 24
4.1程序系统结构.................................................................................................... 25
4.2程序登陆功能设计.................................................................................................... 26
4.2.1程序描.................................................................................................... 27
4.2.2功能描述.................................................................................................... 28
4.2.3性能.................................................................................................... 29
4.2.5输出项.................................................................................................... 30
4.2.6算法.................................................................................................... 31
4.2.7程序流程逻辑.................................................................................................... 32
4.3程序主页设计.................................................................................................... 33
4.3.1程序描述.................................................................................................... 34
4.3.2功能描述.................................................................................................... 35
4.3.3性能.................................................................................................... 36
4.3.4输入项.................................................................................................... 37
4.3.5输出项.................................................................................................... 38
4.3.6接口.................................................................................................... 39
4.3.7程序流程逻辑.................................................................................................... 40
4.4程序日志管理设计.................................................................................................... 41
4.4.1程序描述.................................................................................................... 42
4.4.2功能描述.................................................................................................... 43
4.4.3性能....................................................................................................44
4.4.4输入项.................................................................................................... 45
4.4.5输出项.................................................................................................... 46
4.4.6算法.................................................................................................... 47
4.4.7流程图.................................................................................................... 48
4.5系统管理设计.................................................................................................... 50
4.5.1程序描述.................................................................................................... 51
4.5.2功能描述.................................................................................................... 52
4.5.3性能.................................................................................................... 53
4.5.4输入项.................................................................................................. 54
4.5.5输出项.................................................................................................... 55
4.5.6算法.................................................................................................... 56
4.5.7流程图.................................................................................................... 57
4.5.8接口.................................................................................................... 58
第五章课程设计总结....................................................................................................59
咱们的项目是企业办公管理软件开发,以java web技术面向企业级应用,主要解决企业在日常的实际管理中,面对的企业员工和企业之间信息的传递,消息的及时通知,创建企业员工人员信息的管理,人员的管理,便于企业与用工之间的交流,减小企业的成本,和提升生产工做的效率,提升员工对企业通知没能及时浏览,而影响正常的生产生活。
本次课程(项目)的主要核心人物是利用javaweb知识尝试开发企业级应用。主要使用java的相关技术和使用java框架快速完成项目的开发。
本次项目开发为期2个月的时间,4月15日-6月19日,主要分为如下3个阶段:
第一阶段:4月15日-5月8日:完成项目需求分析文档的编写,进行项目可行性分析,确保项目的实际意义。
第二阶段:5月9日-5月29日:完成项目设计文档的编写,记性E-R图、用例图、系统架构图的分析和项目的编码。
第三阶段:5月30日-6月19日:完成项目服务器的部署、编写项目的主要展现页面博客。
最后,完成项目总文档的整合,发布项目开发的总文档博客。
进行项目需求分析,主要是为了在进行项目实际开发避免因没有考虑的因素,增长项目开发成本,文档的撰写在软件开发中的做用比项目实际的编码更大,经过文档细致的描述、详细的分析、提供给客户详细的说明,以检验是否知足用户的实际需求。
用户需求,主要是针对用户提出的各类需求,进行分析,具体是用户须要达成的目标、完成什么样的功能、服务什么样的群体、采用什么技术来实现用户的而需求,优化代码、提升代码的可移植性、跨平台性,最终在完成客户要求的相应功能的状况下,提升产品用户的体验度。
业务需求主要就是咱们围绕客户提出的要求,咱们怎样经过程序设计以知足用户的要求。经过对业务的分析,可以使咱们设计出更好的程序。
业务目标:
一、项目达到可以解决通常企业的需求,如对企业人员变更信息的管理,企业发布通知、企业管理者查询员工信息。
二、经过该项目检验学习javaweb技术。
2.1.2 商业需求
由于咱们的产品是服务于企业,最后要能解决企业实际遇到的员工管理的问题,因此咱们的项目仍是有很强的商业需求。
咱们的项目怎样才能更好的服务于企业,就须要在企业的实际使用过程当中,遇到的问题,能及时向咱们反馈,咱们就能及时修正、调整咱们的项目和优化代码,增长用户的体验度。
可行性分析是经过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成之后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。可行性分析应具备预见性、公正性、可靠性、科学性的特色。
咱们的项目的开发环境是MyEclipse、使用的数据库是MySQL数据库,采用的技术主要是java web技术。
咱们项目的开发硬件设备是咱们小组成员的我的笔记本电脑、使用的服务器是腾讯云服务器,是基于云端的我的服务器。因此说,咱们小组的经济方面的还有可行的,本次项目面向的是企业管理系统的开发。若是,咱们的项目可以被企业采纳,那将给咱们带来很高的经济效率。
本系统首先员工要经过必定身份验证,才能进入系统,使用到本系统所提供的相应服务。基本功能描述以下。
咱们项目的设计思想,就是使用javaweb技术,想经过实际项目的形式检验本身在这一学期的学习成果,学习和巩固javaweb相关知识,学习java技术在实际开发中是如何使用的,以达到真正的与企业开发相联系,毕业后可以找到适合本身工做的岗位。
图3-1 系统整体结构图
咱们项目的总设计思想是采用java web面向企业级开发的特色,来进行项目的开发。下面图3-2是项目设计总架构图。
图3-2 项目设计总架构图
项目E-R图,有管理员和职工模型、管理员和资料模型、管理员和培训模型和管理员和公告模型。
管理员和职工模型如图3-3所示
图3-3 管理员与职工模型
管理员和资料模型如图3-4所示
图3-4 管理员和资料模型
管理员和培训模型如图3-5所示
图3-5 管理员和培训模型
管理员和公告模型如图3-6所示
图3-6 管理员和公告模型
项目用例图如图3-7所示
图3-7 用例图
用户信息表
存储分配表
图3-1 系统整体结构图
改程序时OA办公自动化的入口,体现了程序的安全性。
(1)功能类型:查询数据。
(2)功能描述:提升系统的安全性。
(3)前提业务:无。
(4)后继业务:04(日程管理。
(5)功能约束:权限约束(6)操做权限:系统管理员,登陆用户。
(1)录入项检测使用javascript和后台代码实现(各项必须非空)。
(2)在Login.aspx.cs中只提交用户名和密码。
数据处理:1.登陆验证,2.记录登陆用户信息。
确保系统能正确运行和进行高效访问。
页面能正确的跳转到日程管理模块下的我的便签页面下。
登陆验证:使用javascript进行表单验证,完成登陆验证页面。
1 Ext.onReady(function(){ 2 3 Ext.QuickTips.init(); 4 var form=new Ext.form.FormPanel({ 5 renderTo:'login', 6 defaultType:'textfield', 7 title:'欢迎登陆OA系统', 8 frame:true, 9 width:300, 10 defaults:{ 11 allowBlank:false 12 }, 13 labelAlign:'right', 14 items:[{ 15 cls : 'user', 16 fieldLabel:'用户名', 17 emptyText:'请输入用户名', 18 name:'oaUser.name', 19 blankText:'用户名不能为空' 20 },{ 21 cls : 'key', 22 fieldLabel:'密 码', 23 inputType:'password', 24 name:'oaUser.password', 25 blankText:'密码不能为空' 26 }], 27 buttonAlign:'center', 28 buttons:[{ 29 text:'登陆', 30 handler:function(){ 31 if(!form.getForm().isValid()){ 32 return; 33 } 34 form.getForm().submit({ 35 waitTitle:'舒适提示', 36 waitMsg:'正在登陆...', 37 url:'user!login.action', 38 success:function(f,action){ 39 if(action.result.success){ 40 Ext.Msg.alert('提示',action.result.msg,function(){ 41 window.location.href='main.jsp'; 42 }); 43 } 44 }, 45 failure:function(f,action){ 46 Ext.Msg.alert('错误',action.result.msg); 47 } 48 }); 49 } 50 }] 51 }); 52 });
1 UserInfo user; 2 LoginLog log = new LoginLog(); 3 //获取用户登陆名 4 log.UserId = txtUserId.Value; 5 //获取登陆时间 6 log.LoginTime = DateTime.Now; 7 log.LoginUserIp = Request.UserHostAddress.ToString(); 8 log.LoginDesc = "用户登陆成功"; 9 log.IfSuccess = 1; 10 //数据验证成功着将数据传入查询方法进行数据操做 11 LoginLogManager.AddLoginLog(log); 12 //获取当前登陆用户 13 Session["CurrentUser"] = user; 14 //判断用户角色进行页面转换 15 if (user.RoleInfo.RoleId == 1) 16 { 17 Response.Redirect("~/ManualSign/ManualSign.aspx"); 18 } 19 else 20 { 21 Response.Redirect("~/ScheduleManage/PersonNote/PersonNote.aspx"); 22 }
(1)功能类型:查询、添加、修改数据。
(2)功能描述:按照要求对数据进行查找、添加、修改。
(3)前提业务:登陆用户为系统管理员。
(4)后继业务:密码修改、从新登陆。
(5)功能约束:权限约束。
(6)操做权限:登陆用户。
1.从新登陆,回转到登陆页面进行从新输入数据进行登陆。
2.修改密码,经过Session获取当前登陆用户信息,根据用户信息进行密码修改。
3.我的便签盒添加便签在日程管理有讲解。
能进行数据的高效访问。
注:添加便签和修改便签输入项在日程管理中有说明
我的日程信息。
从新登陆
图4-3-1 从新登陆
修改密码
图4-3-2 修改密码
注:添加和修改便签在日程管理中有说明。
(1)功能类型:查看、添加、修改、删除数据
(2)功能描述:按照要求对数据进行查查看、添加、修改并删除
(3)前提业务:登陆用户为系统管理员
(4)后继业务:031(个人日程)032(部门日程)033(个人便签)
(5)功能约束:权限约束
(6)操做权限:系统管理员、通常登陆用户,
1.利用树形控件加载出功能页面的连接
2.在个人日程子模块中添加日程是在时间列表控件中点击连接进行跳转
确保系统能高效的进行数据访问
查看:显示数据库中存在的数据
删除:显示删除后数据库中存在的数据
添加:将数据天津啊进入数据库在显示添加后的数据信息
修改:对数据库中本来存在的某条数据进行修改后在进行展现
1 HyperLink link = new HyperLink(); 2 link.ImageUrl = "~/images/add_Schedule.gif"; 3 link.ToolTip = "新增我的日程"; 4 link.NavigateUrl = "SaveMySchedule.aspx?userid=" + user.UserId + "&today=" +day.Date.ToShortDateString(); 5 tc.Controls.Add(link);
部门日程
图4-4-1部门日程
个人日程
图4-4-2 个人日程
个人便签
图4-4-3 个人便签
图4-4-4 接口
(1)功能类型:查看、添加、修改、删除数据。
(2)功能描述:按照要求对数据进行查查看、添加、修改并删除。
(3)前提业务:登陆用户为系统管理员。
(4)后继业务:051 角色管理 052 登录日志 053操做日志 054 菜单排序。
(5)功能约束:权限约束。
(6)操做权限:系统管理员。
图4-5-1 系统管理功能
组织机构部门设置、用户管理、流程管理、表单管理、公文模版管理、角色管理、系统设置、系统日志、数据备份和恢复管理。
系统能高效的进行数据访问和各项操做的更改。
角色管理:输出角色信息;登陆日志:输出相应时间内的登陆日志。
操做日志:输出相应时间内的操做日志。
菜单排序:输出经过上下移动后的树形菜单排序状况。
1.分配角色权限中关于复选框选择的问题,怎样处理好选择一个模块时选择其下的子模块而不选中其余模块的子模块,须要使用用户自定义控件来完成,在后台代码显示方法中这样写。
//获得全部父级点信息
IList sysFuns = SysFunManager.GetAllParentNodeInfo();
//根据父节点获得对应子节点生成用户控件,而后循环插入到PlaceHolder容器中
1 foreach (SysFun sysFun in sysFuns) 2 { 3 //获得父节点Id 4 string nodeId = sysFun.NodeId.ToString(); 5 //获得父节点名称 6 string displayName = sysFun.DisplayName; 7 //实例化用户控件 8 SysManage_RoleManage_WebUserControl roleCotrol = (SysManage_RoleManage_WebUserControl)LoadControl(@"RoleUserControl.ascx"); 9 //实例化隐藏区域,用以存父节点Id 10 HtmlInputHidden hidParentMeu = (HtmlInputHidden)roleCotrol.FindControl("hidParentMenu"); 11 hidParentMeu.Value = nodeId; 12 //实例化隐藏区域,用以存储角色Id 13 HtmlInputHidden hidRoleId = (HtmlInputHidden)roleCotrol.FindControl("hidRoleId"); 14 hidRoleId.Value = roleId.ToString(); 15 16 //实例化用户控件中的CheckBox 17 CheckBox chkParentMenu = (CheckBox)roleCotrol.FindControl("chkParentMenu"); 18 19 //显示父菜单名称 20 chkParentMenu.Text = displayName; 21 22 if (arrRoleParentNodes.Contains(nodeId)) 23 { 24 chkParentMenu.Checked = true; 25 } 26 //把父节点生成的用户控件追加打破PlaceHolder容器中 27 phRoleDistribute.Controls.Add(roleCotrol); 28 }
2.查看登陆日志和操做日志时,开始时间和结束时间的获取使用javascript代码来实现
1 function fillstring(str) 2 { 3 if(str.length==1) 4 { 5 str = "0" + str; 6 } 7 return(str); 8 } 9 function quickseldate(type) 10 { 11 var begintime,endtime; 12 var oneminute = 60*1000; 13 var onehour = 60*oneminute; 14 var oneday = 24*onehour; 15 var oneweek = 7*oneday; 16 17 var todayDate = new Date(); 18 var date = todayDate.getDate(); 19 var month= todayDate.getMonth() +1; 20 var year= todayDate.getYear(); 21 var day = todayDate.getDay(); 22 if(navigator.appName == "Netscape") 23 { 24 year = 1900 + year; 25 } 26 27 //--> 28 29 if(type=="day") 30 { 31 begintime = year.toString() + "-" + fillstring(month.toString()) + "-" + 32 33 fillstring(date.toString()); 34 endtime = begintime; 35 } 36 else if(type=="week") 37 { 38 var daytoMon = day-1; 39 if(day==0) 40 daytoMon = 6; 41 42 todayDate.setTime(todayDate.getTime()-daytoMon*oneday); 43 date = todayDate.getDate(); 44 month= todayDate.getMonth() +1; 45 year= todayDate.getYear(); 46 day = todayDate.getDay(); 47 48 begintime = year.toString() + "-" + fillstring(month.toString()) + "-" + 49 50 fillstring(date.toString()); 51 52 todayDate.setTime(todayDate.getTime()+6*oneday); 53 54 date = todayDate.getDate(); 55 month= todayDate.getMonth() +1; 56 year= todayDate.getYear(); 57 58 endtime = year.toString() + "-" + fillstring(month.toString()) + "-" + 59 60 fillstring(date.toString()); 61 } 62 else if(type=="month") 63 { 64 var dateto1 = date-1; 65 66 todayDate.setTime(todayDate.getTime()-dateto1*oneday); 67 date = todayDate.getDate(); 68 month= todayDate.getMonth() +1; 69 year= todayDate.getYear(); 70 day = todayDate.getDay(); 71 72 begintime = year.toString() + "-" + fillstring(month.toString()) + "-" + 73 74 fillstring(date.toString()); 75 76 todayDate.setMonth(month); 77 todayDate.setTime(todayDate.getTime()-oneday); 78 79 date = todayDate.getDate(); 80 month= todayDate.getMonth() +1; 81 year= todayDate.getYear(); 82 83 endtime = year.toString() + "-" + fillstring(month.toString()) + "-" + 84 85 fillstring(date.toString()); 86 87 } 88 89 document.getElementById("<% =txtBeginTime.ClientID %>").value = begintime; 90 document.getElementById("<% =txtEndTime.ClientID %>").value = endtime;
角色管理
图4-5-2 角色管理图
登陆日志
图4-5-3登陆日志
操做日志
图4-5-4 操做日志
菜单排序
图4-5-5 菜单排序
图4-5-6接口
本次项目历时接近两个月的时间,咱们一直本着初心,围绕项目的整体目标,即运用java web技术进行面向企业级应用的开发,三个博客的编写,进行了《可行性分析报告》、《需求分析报告》、《项目设计报告》。一块儿能够看出咱们的成长,从最初刚开始学习文档编写的格式;项目的定位目标、怎样对项目可行性进行合理、正确、客观的分析;如何把控项目在实际需求,来自用户的需求,采用什么技术设计来完成项目的搭建;学习编写用户的操做手册,项目怎样交给用户来进行使用等,让咱们经历了企业项目实际开发过程当中的必要阶段。学习了项目的实际开发分析思路,项目开发的前后顺序、认识到项目开发过程当中文档的重要性。
在这段时间里,知道了团队协做的重要性,一个好的团队怎样攻克难题、打败困难、超越自我,最终取得共同的进步,怎样在快速完成项目开发的过程当中,又能增加本身的开发经验。
在此,很是感谢老师的指导和同窗们的交流、讨论,更重要的是感谢咱们小组同窗的积极参与、奉献,你们一块儿共同完成本次的项目课题。共同经历了项目的开发流程。