版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
系统设计报告第页OA系统设计报告平顶山工业职业技术学院应用(3+2)班第一组组长:陈运航(角色)成员:(部门,职位)(系统参数)(模块,工作日)目录1引言 31.1编制目的 31.2词汇表 31.3参考资料 32系统开发环境 33系统公用代码 43.1公用代码一 43.1.1功能描述 43.1.2方法描述 43.2公用代码二 43.2.1功能描述 43.2.2方法描述 53.3公用代码三 53.3.1功能描述 53.3.2方法描述 53.4公共代码四 73.4.1功能描述 73.4.2方法描述 73.5公用代码五 73.5.1功能描述 73.5.2方法描述 84模块详细设计子系统/模块设计 94.1系统参数信息模块 94.1.1功能描述 94.1.2界面设计 94.1.3时序图 104.2部门管理模块 104.2.1功能描述 104.2.2界面设计 104.2.3时序图 124.3工作日管理模块 134.3.1功能描述 134.3.2界面设计 134.3.3时序图 144.4模块管理模块 154.4.1功能描述 154.4.2界面设计 154.4.3时序图 164.5职位信息模块 164.5.1功能描述 164.5.2界面设计 174.5.3时序图 184.6角色信息表 194.6.1功能描述 194.6.2界面设计 194.6.3时序图 225数据字典 221引言1.1编制目的指导系统编码,包括各个子系统中各模块系统调用类及、方法及流程的说明,为系统开发提供依据。目标读者是系统开发人员。1.2词汇表词汇名称词汇含义备注service系统中处理数据库相关业务层
OASystem办公自动化系统
1.3参考资料信捷协同办公系统华天动力协同OA系统/思道OA办公自动化软件/2系统开发环境操作系统:WindowsXP编程工具:visualstudio2005版本控制工具:SubVersion数据库:SQLServer2005测试服务器:IIS3系统公用代码3.1DataAccess-数据访问模块3.1.1功能描述为了方便编写执行sql语句的代码,我们编写了DataAccess类。3.1.2方法描述DataAccess类提供了以下方法接口返回值方法名称功能描述示例Dictionary<String,String>ExecuteToSet(StringsqlStr)执行不带参数的sql语句,返回值放在Dictionary中返回Dictionary<String,String>dic=DataAccess.ExecuteToSet("select*fromEmployeewhereempid=1");Dictionary<String,String>ExecuteToSet(StringsqlStr,Dictionary<string,string>nameValueParams)执行带参数的sql语句,参数放在Dictionary容器中,返回值放在Dictionary中返回Dictionary<String,String>dicParam=DictionaryHelper.CreateDictionary("empid",1);
Dictionary<String,String>dic=DataAccess.ExecuteToSet("select*fromEmployeewhereempid=@empid",dicParam);3.2DictionaryHelper-字典帮助类3.2.1功能描述为了方便我们在事件处理函数和后台Services之间进行参数传递。3.2.2方法描述示例如下://得到用户输入的请假信息Dictionary<String,String>leave=DictionaryHelper.CreateDictionary("EmpID,LeaveTypeID,Title,StartTime,EndTime,Reason",getLoginUserId(),ddlLeaveType.SelectedValue,txtTitle.Text,startTime1.Text,endTime1.Text,txtComment.Text);intresult=LeaveService.AddLeave(leave);其中,CreateDictionary()函数为创建一个Dictionary<String,String>对象并赋值。第一个参数使用以,分隔字符串设定Dictionary的Key列表,其后按顺序给出值。3.3QueryHelper-查询帮助类3.3.1功能描述在信息系统的开发中,我们经常遇到多条件查询的情况,例如通过姓名、部门、职位、email等条件查询员工信息。为了方便编写多条件查询代码,我们编写的QueryHelper辅助类。3.3.2方法描述代码示例如下:privatestaticstringSQL_EMP_SEARCH=@"selecte.empid,e.empno,e.loginname,,e.password,e.email,e.sex,convert(nvarchar(10),e.birthday,120)birthday,e.idcard,convert(nvarchar(10),e.entrydate,120)entrydate,e.photo,e.officephone,e.cellphone,e.telephone,ro,e.postid,e.status,d.deptid,p.postname,d.deptname,d.fullnameasdfullnamefromemployeeejoinv_postpone.postid=p.postidjoinv_departmentdonp.deptid=d.deptid";///<summary>///通过组合条件搜索员工///</summary>///<paramname="param"></param>///<returns></returns>publicstaticDataSetSearchEmp(Dictionary<string,string>param){QueryHelperqh=newQueryHelper(SQL_EMP_SEARCH,"orderbyasc");qh.setParam(QueryHelper.IsNotBlank(param["empNo"]),"e.empno=@empno","empno",param["empNo"]);qh.setParam(QueryHelper.IsNotBlank(param["loginName"]),"e.loginname=@loginname","loginname",param["loginName"]);qh.setParam(QueryHelper.IsNotBlank(param["name"]),"like@name","name","%"+param["name"]+"%");qh.setParam(QueryHelper.IsNotBlank(param["deptId"]),"d.deptidin(selectdeptidfromf_DeptSubTree(@deptid))","deptid",param["deptId"]);qh.setParam(QueryHelper.IsNotBlank(param["postId"]),"e.postid=@postid","@postid",param["postId"]);qh.setParam(QueryHelper.IsNotBlank(param["status"]),"e.status=@status","status",param["status"]);qh.setParam(QueryHelper.IsNotBlank(param["sex"]),"e.sex=@sex","sex",param["sex"]);qh.setParam(QueryHelper.IsNotBlank(param["phone"]),"(e.officephonelike@phoneore.cellphonelike@phoneore.telephonelike@phone)","phone","%"+param["phone"]+"%");qh.setParam(QueryHelper.IsNotBlank(param["birthday"]),"convert(nvarchar(10),e.birthday,120)=@birthday","birthday",param["birthday"]);returnDataAccess.ExecuteToDataSet(qh.getQuerySql(),qh.getParams());}其中,QueryHelper类的构造方法,接受两个参数,第一个为select查询语句的开始部分(不包括条件),第二个参数为select语句的结尾部分,一般是orderby语句。
通过setParam()方法可以向select语句加入查询部分,其中,第一个参数是判断是否加入的条件,如果为true,则加入;否则则不加入。第二个参数是查询条件。第三个参数为参数,第四个参数是该参数的值。
依次加入所有的查询条件,最后,通过getQuerySql()可以得到合并了查询条件的select语句,参数通过getParams()方法获得。3.4WindowHelper-窗口帮助类3.4.1功能描述在ASP.NET编程中,我们经常需要在客户端向用户输入提示信息,一般我们用javascript的alert()函数实现。为了方便使用alert,我们封装了WindowHelper类。3.4.2方法描述代码示例如下:WindowHelper.Alert("Hello,world!",this);//this为页面引用3.5TransHelper-事务帮助类3.5.1功能描述在涉及数据库编程中,对多条sql语句进行事务处理是不可避免的,为了简化事务处理,我们编写了TransHelper类。3.5.2方法描述代码示例如下:privateconstStringSQL_ROLE_DEL_MODULES_IN_ROLE=@"deletefromRoleModulewhereroleID=@roleID";//删除角色privateconstStringSQL_ROLE_DELETE=@"deletefromrolewhereroleid=@roleid";//删除角色下所有员工privateconstStringSQL_ROLE_DEL_EMPS_IN_ROLE=@"deletefromEmpRolewhereroleID=@roleID";publicstaticboolDelRole(Stringroleid){TransHelperth=newTransHelper();//删除角色下所有权限th.AddCommand(SQL_ROLE_DEL_MODULES_IN_ROLE,"roleID",roleid);//删除角色下所有员工th.AddCommand(SQL_ROLE_DEL_EMPS_IN_ROLE,"roleID",roleid);//删除角色th.AddCommand(SQL_ROLE_DELETE,"roleid",roleid);returnth.Execute();}其中,SQL_ROLE_DELETE和SQL_ROLE_DEL_EMPS_IN_ROLE为要同时执行的sql语句。
首先,定义TransHelper类的对象th。
然后,使用th的AddCommand()方法,把sql语句加入事务中。
最后,调用Execute()方法执行该事务4模块详细设计子系统/模块设计4.1系统参数信息模块4.1.1功能描述管理员配置系统参数。4.1.2界面设计相关页面config_list.aspx事件函数功能Page_Load页面加载,显示已有参数列表Service方法返回值方法名功能参数说明DataSetGetConfigList()获得所有系统参数
voidUpdateConfigValue(stringoriginal_configid,stringconfigvalue)更新参数值original_configid:参数编号
configvalue:参数值stringGetConfigValue(stringconfigid)获取参数值configid:参数编号4.1.3时序图4.2部门管理模块4.2.1功能描述主要对部门进行管理维护,包括新建部门,修改,删除部门。4.2.2界面设计相关页面Dept_list.aspx事件函数功能Page_Load隐藏新建部门界面GridView1_RowDataBoundGridView中行数据别绑定后调用此函数btnDoAdd_Click创建新部门操作btnCancel_Click取消部门创建操作btnAdd_Click新建部门操作GridView1_RowCommand处理超链接按钮"修改"和"删除"点击操作Dept_edit.aspx事件函数功能Page_Load列出可供编辑的部门信息btnCancel_Click取消编辑,跳转到dept_list.aspx页btnDoEdit_Click修改部门内容后提交Service方法返回值方法名功能参数说明DataSetGetDeptTree()获取部门树
DataSetGetDeptList()获取部门列表
DataSetGetDeptExceptList(StringdeptId)获取部门列表,除了其自身及下级部门deptId:部门IDvoidAddDept(Dictionary<String,String>dept)新建部门dept:部门数据字典Dictionary<String,String>GetDept(Stringdeptid)获取单个部门信息deptid:部门IDboolExistDept(StringdeptId,StringparentId,StringdeptName)检查同名部门是否存在deptId:部门ID;parentId:上一级部门ID;deptName:部门名称voidUpdateDept(Dictionary<string,string>dept)修改部门信息dept:部门数据字典intSubDeptNum(stringdeptId)获取下级部门数量deptId:部门IDintDeptPostNum(stringdeptId)获取部门下包含的职位数量deptId:部门IDvoidDeleteDept(stringdeptId)删除部门deptId:部门ID4.2.3时序图4.3工作日管理模块4.3.1功能描述管理员进行工作日管理。4.3.2界面设计相关页面job_year_list.aspx事件函数功能Page_Load页面加载,显示已有当前年份工作日列表,显示按月设定工作日功能入口,显示按年显示工作日列表功能入口,显示近五年工作日设定功能入口btnAdd_Click创建指定年份工作日GridView1_RowDataBound明确工作日列表信息显示ddlYear_SelectedIndexChanged实现按年查看工作日设定信息GridView1_RowCommand实现按月设定工作日功能job_month_list.aspx事件函数功能Page_Load页面加载,显示某月已设定工作日情况表,显示修改工作日属性功能入口,显示全选、取消全选、批量修改工作日属性功能入口GridView1_RowDataBound明确工作日列表信息显示样式GridView1_RowCommand实现修改工作日属性功能btnChange_Click实现批量修改工作日属性功能btnSelectAll_Click实现全选功能btnCancelAll_Click实现取消全选功能btnBack_Click返回上级页面Service方法返回值方法名功能参数说明DataSetGetYearJobDay()获得已设定日期的年份
DataSetGetMonthJobDay(stringyear)获得某一年的工作日汇总信息year:指定年份voidAddYearJobDay(stringyear)添加整年日期,自动设置周六周日为非工作日year:指定年份DataSetGetJobDay(stringmonth)获得某个月的工作日清单month:指定月份voidChangeJobDay(stringdayid)更新某日是否是工作日dayid:日期编号4.3.3时序图4.4模块管理模块4.4.1功能描述对系统中的模块信息进行维护。4.4.2界面设计相关页面module_list.aspx事件函数功能Page_Load查询模块信息,以列表显示btnAdd_Click新增模块信息btnAddShow_Click显示新增模块表单btnCancel_Click隐藏新增模块表单,显示模块列表Service方法返回值方法名功能参数说明StringgetNextID(StringparentID)得到下一个ModuleIDparentID:上一级模块IDDataSetGetAllModuleTree()检索出所有的Module并采用层次方式显示
boolAddModule(Dictionary<String,String>module)新增Module信息module:模块信息boolDelModule(StringmoduleID)删除Module信息moduleID:模块IDboolUpdateModule(StringmoduleID,StringmoduleName,Stringdescription,Stringlink,StringimgUrl)修改Module信息
moduleID:模块ID,moduleName:模块名称,description:模块描述;link:链接地址;imgUrl:图标地址Dictionary<String,String>GetModuleByID(StringmoduleID)通过ModuleID得到模块信息moduleID:模块IDList<Module>getAllModules()得到所有的模块信息,以List<Module>形式返回
4.4.3时序图4.5职位信息模块4.5.1功能描述主要对职位进行管理维护,包括列出相关部门下的职位,新建下级职位,修改职位,删除职位。4.5.2界面设计相关页面post_list.aspx事件函数功能Page_Load获取部门列表,获取部门职位列表GridView1_RowDataBoundGridView中行数据别绑定后调用此函数FormatPostLevel格式化职位等级ddlDept_SelectedIndexChanged选择不同部门的处理函数GridView1_RowCommand处理超链接按钮"新建下级","修改"和"删除"点击操作btnCancel_Click取消职位修改btnDoEdit_Click职位修改后提交post_edit.aspx事件函数功能Page_Load列出新建下级职位的各个项btnCancel_Click取消新建下级职位btnDoAdd_Click提交新建下级职位的信息Service方法DataSetGetPostList()获取职位树形列表
DataSetGetDeptPostList(StringdeptId)获取部门职位树形列表deptId:部门IDvoidUpdatePost(stringpostname,stringpostduty,stringpostid)更新职位postname:职位名称;postduty:职位职责;postid:职位IDvoidAddPost(Dictionary<String,String>post)新建职位post:职位数据字典intSubPostNum(stringpostid)获取下级职位的数量postid:职位IDintPostEmpNum(stringpostid)获取职位员工数量postid:职位IDvoidDeletePost(stringpostid)删除职位postid:职位ID4.5.3时序图4.6角色信息表4.6.1功能描述该模块是用来管理角色,给角色分配权限4.6.2界面设计相关页面role_list.aspx事件名功能GridView1_RowCommand根据ButtonField的CommandName跳转到角色下用户列表页面、角色更新页面或删除角色btnRoleAdd_Click跳转到新增角色页面btnEmpRole_Click跳转到员工查找页面GridView1_RowDataBound限制系统管理员角色不能删除role_add.aspx事件名功能Page_Load向TreeView控件中填充、显示所有的后台权限CreateTree(StringparentID,TreeNoderootNode)
向rootNode结点中添加父ID为parentID的所有节点List<Module>getSubModuleByParentID(StringparentID)得到以parentID为父ID的所有权限btn_add_Click新增权限setAllNodesEmpty(TreeNodeCollectiontnc)把权限树清空GetAllChooseNodes(TreeNodeCollectiontnc)得到所有checked为真的权限的ModuleIDbtnReturn_Click返回角色列表页面role_update.aspx事件名功能Page_Load向TreeView控件中填充、显示登录用户的后台权限CreateTree(StringparentID,TreeNoderootNode)
向rootNode结点中添加父ID为parentID的所有节点List<Module>getSubModuleByParentID(StringparentID)得到以parentID为父ID的所有权限btn_update_Click修改权限setAllNodesEmpty(TreeNodeCollectiontnc)把权限树清空GetAllChooseNodes(TreeNodeCollectiontnc)得到所有checked为真的权限的ModuleIDButton2_Click返回角色列表页面role_assign_emp.aspx事件名功能btnEmpAddRole_Click为用户分配角色btnReturn_Click返回前一页面role_emp_list.aspx事件名功能Page_Load根据Session传入的查询条件查询员工Button1_Click返回员工查询页面(role_emp_query.aspx)Button2_Click返回角色列表页面(role_list.aspx)role_query_emp.aspx事件名功能btnSearch_Click保存查询条件,
转到查询列表页面Service方法返回值方法名功能参数说明boolAddRoleAndPower(StringroleName,List<String>listModuleIDs)新增角色及其权限roleName:角色名称;listModuleIDs:模块ID列表DataSetGetAllRoles()得到系统中所有的角色
boolDelRole(Stringroleid)删除角色roleid:角色idDataSetGetAllRolesForAdd()得到所有角色–为用户添加角色时使用
DataSetGetRolesByEmpID(StringempID)提供用户ID,得到用户分配的角色,同时得到其他角色,没有选中的角色为0empID:员工IDDataSetGetEmpRoles(stringempid)获取用户目前的角色empid:员工IDboolAssignRolesToEmp(Stringempid,List<String>roleids)为用户分配角色empid:员工id;roleids:角色id列表boolAddRolesForEmp(StringempID,List<Int32>listRoleIDs)新增用户的角色empid:员工id;listRoleIDs:角色id列表boolUpdateModulesInRole(Stringroleid,StringroleName,List<String>moduleids)更新角色中的权限roleid:角色id;roleName:角色名称;moduleids:模块id列表DataSetGetModulesOfEmp(StringempID)根据员工ID号,得到该员工的权限树empID:员工idDataSetGetEmpsInRole(Stringroleid)得到某个角色下的所有员工roleid:角色idStringGetRoleName(Stringroleid)得到roleid对应的rolenameroleid:角色id4.6.3时序图5数据字典5.1数据字典大概(1)表表名表功能说明\o"Article"Article新闻栏目文章表\o"Attendance"Attendance考勤信息表\o"Car"Car车辆信息表\o"CheckHistory"CheckHistory审核信息表\o"Column"Column新闻栏目表\o"Contract"Contract劳动合同信息表\o"Department"Department部门信息表\o"DocBorrow"DocBorrow档案借阅表\o"DocInfo"DocInfo档案信息表\o"DocSort"DocSort档案分类表\o"Employee"Employee员工信息表\o"EmpOSApply"EmpOSApply员工申请办公用品表\o"EmpRole"EmpRole员工角色表\o"JobDay"JobDay工作日信息表\o"JobLabel"JobLabel人才标签表\o"JobLabelSort"JobLabelSort人才标签分类表\o"JobPlan"JobPlan招聘计划表\o"JobResume"JobResume应聘信息表\o"JobTalents"JobTalents人才库信息表\o"JobTalentsLabel"JobTalentsLabel人才库信息表\o"Leave"Leave请假信息表\o"LeaveItem"LeaveItem请假明细表\o"LeaveType"LeaveType请假类型表\o"MeetingRoom"MeetingRoom会议室信息表\o"MeetingRoomApply"MeetingRoomApply会议室申请表\o"MeetingUser"MeetingUser参会人员表\o"Message"Message短消息\o"Module"Module模块信息表\o"OfficeSupply"OfficeSupply办公用品信息表\o"OSApply"OSApply办公用品申请批次表\o"Overtime"Overtime加班申请表\o"Post"Post职位信息表\o"Role"Role角色信息表\o"RoleModule"RoleModule角色权限表\o"SalaryBatch"SalaryBatch工资发放批次表\o"SalaryItem"SalaryItem工资详情表\o"Schedule"Schedule日程信息\o"SurveyAnswer"SurveyAnswer调查回答表\o"SurveyPaper"SurveyPaper调查问卷表\o"SurveyQuestion"SurveyQuestion调查问卷问题表\o"SystemConfig"SystemConfig系统参数表\o"TrainingApply"TrainingApply培训申请表\o"TrainingPlan"TrainingPlan培训计划表(2)视图视图名视图功能说明\o"v_department"v_department部门视图\o"v_emp_post_dept"v_emp_post_dept员工视图(包含职位和部门)\o"v_employee"v_employee在职员工视图\o"v_post"v_post职位视图(3)存储过程存储过程名存储过程功能说明\o"init_status"init_status改变试卷初始状态\o"p_addJobDay"p_addJobDay新增某一年的工作日\o"p_getAllLeaders"p_getAllLeaders已知EmpID,得到该员工所有上级领导\o"p_getOSstatistic"p_getOSstatistic按年统计办公用品\o"p_getSummary"p_getSummary获取允许用户查看的会议纪要\o"p_noticeRecedeDoc"p_noticeRecedeDoc发送档案归还督促消息(4)表值函数函数名函数功能说明\o"f_DeptSubTree"f_DeptSubTree下级部门子树\o"f_DeptTree"f_DeptTree部门树\o"f_DeptTreeExcept"f_DeptTreeExcept除去某节点外的部门树HYPERLINK"79/nps/linkres/net-v3/net-oa-design-new/net-oa-design-new/437b7d955c8a9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供货商信守诺言经营声明书9篇
- 新型科技协助承诺函(7篇)
- 企业发展目标保障书(5篇)
- 幼儿园一日生活安全管理与紧急处置指南
- 企业职工教育培训经费投入承诺书4篇
- 电子商务从业者优化用户体验指导书
- 互联网金融推进创新责任书9篇范文
- 数据分析与数据挖掘实战案例研究手册
- 安全生产自律管理承诺书5篇
- 学校环境美化措施承诺书5篇范文
- 化疗期间便秘的预防和处理
- 小儿支气管肺炎健康宣教
- 交通安全设施故障应急措施
- 培训内驱力的课件教学
- 中国古代工匠精神人物
- 养猪场自动化喂养系统建设方案
- 2025特变电工校园招聘200人笔试历年参考题库附带答案详解
- 移动式操作平台专项施工方案(二期)
- 2025年红色文化知识竞赛试题题及答案
- 2025年高考四川物理真题及答案
- 水利工程安全度汛培训课件
评论
0/150
提交评论