基于mvc模式下机关办公自动化_系统oa-b核心功能的实现毕业论文(编辑修改稿)内容摘要:
+JavaBean+Servlet进行编程。 已实现的系统的功能结构模块如图 32 所 示。 图 32 OAB 系统结构图 而其下又可以分为子系统结构图。 图 33 用户管理子系统功能模块图 OA系统 个 人 办 公 公 共 办 公 工作流管理 系 统 管理 行 政 办 公 部门管理 用户管理 用户管理子系统 用 户 注 册 模 块 用 户 信 息 管 理 模 块 用 户 信 息 修 改 模 块 管 理 员 登 录 模 块 公 告 栏 模 块 用 户 密 码 修 改 模 块 用 户 登 录 模 块 用 户 查 询 模 块 留 言 板 模 块 第四章 核心子系统模块设计 前面我们已经提出了作为一个 OA系统的核心功能应是报文传递、工作流和复合型文档,再加上对用户人员的权限管理, 我们即可以称之为一个精简功能的 OAB系统,已能应付一般的机关处室的日常工作。 我们知道,在 OAB中对应报文传递功能的实现发 /收文管理,而在从发文到收文的过程中又可以看成是一个工作流。 因此,毫无疑问,在 OAB系统中是它是真正的核心。 用户做为支撑该软件中的“人”的因素,不可或缺的是一个用户权限管理功能。 而在其中有包含了与动态管理相对应的数据库连接技术。 本章我们以发 /收文管理和用户管理的实现为例,介绍 OAB设计原理。 发 /收文管理 因为对每一种对象的管理都比较类似,在此仅以行政办公中的发文、 收文管理 公文 为例,来分析一下本系统中的数据流向。 根据图 11 的 OAB开发模式数据传递图我们可以大致了解到发文过程的原理,即有图 41。 MVC模式分析发文管理 图 41 发文模式数据传递实例图 第一步: Controller→ Model←→ SQL Server 用户作为拟稿完成后,通过 Http 发出发文请求 (Send Request),作为的控制器的 Servlet 通过调用 Web 配置文件 向 JavaBean发出控制信号 ,并对其Sender Servlet HTTP Request Forward 读 取 Model View JavaBean J D B C 数据库 发文拟稿页面 Querry Controller 赋值。 而 JavaBean中的一个值对象 (Value Object,即 VO)将通过 JDBC 连接SQL Server 数据库,从中调出所需信息返回给 VO,实现了在模型层与数据库的交互。 第二步: Controller→ Viewer←→ Model Servlet 又向 JSP 发出从 JavaBean中读取数据库信息的信号,在视图层的JSP 页面在从 JavaBean调出信息,生成发文拟稿页面,完成一次发文。 发文工作流数据库实现 在本系统中,发文模块流程为 参考流程为:开始 —— [申请人(拟稿) ]提交 —— [同部门工 作人员(核稿) ] —— [部门领导(审稿或会签) ] —— [办公室文员(校稿) ]—— [办公室主任(定稿) ] —— [单位领导(签发) ]——[拟稿人 (处室复核 )]—— [公文管理员(归档) ] —— 结束 以拟稿到和核稿为例,流程图为图 42 所示。 图 42 发文管理→从审稿到核稿流程图 由于整个发文流程很复杂,故我们采用树型结构来实现它,表 41 为其在SQL中的发文流程的结点表。 表 42 为发文工作流信息表。 表 42 中已定义了各字段的属性,而其中的 Direction是控制方向, R值代表指向后一步操作, L值代表指向前一操作,这样就保证了流程的通畅。 表 41 发文工作流表 Node_No_S Node_No_E Direction Flow_name Flow_Desc Order_by Workflow_No 0000001 0000002 R 拟稿提交 从拟稿到核稿 0 000001 0000002 0000003 R 核稿提交 从核稿到审稿 1 000001 0000002 0000001 L 核稿退回 从核稿退回到拟稿 2 000001 0000003 0000004 R 审稿提交 从审稿到校稿 3 000001 0000003 0000001 L 审稿退回 从审稿退回到拟稿 4 000001 0000004 0000005 R 校稿提交 从校稿到定稿 5 000001 开始 拟稿提交 核稿是否合格合格 Y N 结束 核稿提交 0000004 0000001 L 校稿退回 从校稿退回到拟稿 6 000001 0000005 0000006 R 定稿提交 从校稿到签发 7 000001 0000005 0000004 L 定稿退回 从定稿退回到校稿 8 000001 0000006 0000007 R 签发提交 从定稿到签发 9 000001 0000006 0000001 L 签发退回 从签发退回到拟稿 10 000001 0000007 0000008 R 打印发送归档提交 从签发到打印发送归档 11 000001 0000008 R 完成发文归档 发文归档 12 000001 表 42 发文工作流信息表 表 名 字段名 类型 大小 可空 约束 备注 WorkFlow_Message Node_No integer 7 N 主键 指向编号 Node_No_S integer 7 N 头结点编号 Node_No_E integer 7 Y 尾结点编号 Direction varchar 1 N 结点方向 Flow_Name varchar 100 N 结点名 Flow_Desc varchar 100 N 流向名 Order_by integer 7 N 顺序号 Workflow_No integer 7 N 工作流编号 收文查询中值对象控制 在 文中我们已提出值对象( VO)的概念,这里有必要在声明以下什么是值对象,即用于把数 据从某个对象 /层传递到其他对象 /层的 Java 对象。 它提供了一个或一组值的实体信息。 收文流程为流程:开始 —— [办公室人员(登记) ]提交 —— [办公室主任(拟办) ] —— [单位领导(批示) ] —— [主办处室负责人(主办) ]——[协办处室负责人(分办) ] —— 办公室文员 (打印排版 ,发送 )—— 公文管理员(归档) ] —— 结束。 不难发现,收文流程和发文是很类似的,另外,在收文管理中还提供了四个功能,即登记、处理、阅读和查询。 而它们就是通过值对象的传递控制的。 下面我们将以收文查询为例,分析值对象在其中 的作用: 当点击收文查询 ,进入 “公文收文【查询】 ”页面 ,就可以按来文标题、来文文号、来文单位、紧急程度、公文密级、收文编号、收文日期、备注等信息进行组合查询。 系统根据你的查询条件返回查询页面 ,然后你就可以浏览查询结果中你所需的公文。 以下是收文查询的算法: package。 // 加载 persistence 包 import。 // 调用 VO 值对象 import。 import。 /**根据主键查询收文值对象 *@param id 公文编号 * @return docRecVO 对象,如果不存在返回一个空对象,但不允许返回 null */ public DocRecVO queryByID(String id) { DocRecVO docRecVO = null。 PreparedStatement stat = null。 ResultSet rs = null。 String strSql = select * from [Doc_Tb_Rec] where RecDocNo=?。 // 嵌入 sql语句查询 ObjDBConnBean = ()。 Connection conn =(goa)。 try { stat = (strSql)。 (1,id)。 rs = ()。 while (()) { docRecVO = new DocRecVO()。 ((RecDocNo))。 ((Come_Title))。 ((Come_Doc_No))。 ((Come_Doc_Dept))。 ((DC_Doc_Exigence))。 ((DC_Doc_Security))。 ((In_Doc_No))。 ((In_Doc_Date))。 ((In_Doc_Dept))。 ((Come_Content))。 ((Memo))。 ((File_ID))。 ((Enter_User_No))。 ((Edit_DateTime))。 ((Enter_DateTime))。 ((RecordID))。 ((Template))。 ((FileType))。 ((HTMLPath))。 ((Status))。 ((Main_Do_User_Nos))。 ((Other_Do_User_Nos))。 ((Read_Do_User_Nos))。 ((Send_RecordID))。 } } /*按来文标题、来文文号、来文单位、紧急程度、公文密级、收文编号、收文日期、备注等信息进行组合查询 */ catch (SQLException e) { (this,queryByID(String),strSql,e)。 } finally { (goa,conn)。 } return docRecVO。 } /** * 根据动态 SQL 语句查询 * @param conditionSql 动态 SQL 语句 * @return Collection,如果不存在返回一个空集合,但不允许返回 null */ public Collection queryByDynamicSql(String conditionSql) { ArrayList docRecVOList = new ArrayList()。 DocRecVO docRecVO = null。 Statement stat = null。 ResultSet rs = null。 String strSql =。 if(())//没选定任何条件 strSql = select * from [Doc_Tb_Rec]。 else strSql = select * from [Doc_Tb_Rec] Where + conditionSql。 ObjDBConnBean = ()。 Connection conn =(goa)。 try { stat = ()。 rs = (strSql)。 while (()) { docRecVO = new DocRecVO(。基于mvc模式下机关办公自动化_系统oa-b核心功能的实现毕业论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。