基于MVC模式下机关办公自动化系统(OAB)核心功能的实现_第1页
基于MVC模式下机关办公自动化系统(OAB)核心功能的实现_第2页
基于MVC模式下机关办公自动化系统(OAB)核心功能的实现_第3页
基于MVC模式下机关办公自动化系统(OAB)核心功能的实现_第4页
基于MVC模式下机关办公自动化系统(OAB)核心功能的实现_第5页
已阅读5页,还剩50页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于MVC模式下机关办公自动化 系统(OAB)核心功能的实现 本科毕业设计(论文) 题 目:基于MVC模式下机关办公自动化 系统(OAB)核心功能的实现 Subject: The corn function design of OA-B system based on MVC pattern 毕业论文(设计)原创性声明 本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究 工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本 论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文 (设计)的研究做岀重要贡献的个人和集体,均已在文中作了明确说明 并表彌意。 作者签名: 日期

2、: 毕业论文(设计)授权使用说明 本论文(设计)作者完全了解杯学院有关保留使用毕业论文(设 计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设 计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量 复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文 (设计)的全部或部分内容。保密的论文(设计)在解密后适用本规 定。 作者签名: 指导教师签名: 日期: 日期: 注意事项 1 设计(论文)的内容包括: 1)封面(按教务处制定的标准封面格式制 作) 2)原创性声明 3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分:

3、引言(或绪论)、正文、 结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2论文字数要求:理工类设计(论文)正文字数 不少于1万字(不包括图纸、程序清单等),文 科类论文正文字数不少于1.2万字。 3附件包括:任务书、开题报告、外文译文、译 文原文(复印件)。 4文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打 印字体及大小符合要求,无错别字,不准请他 人代写 2)工程设计类题目的图纸,要求部分用尺规 绘制,部分用计算机绘制,所有图纸应符合国 家技术标准规范。图表整洁,布局合理,文字 注释必须使用工程字书写,不准用徒手画 3)毕业论文须用A4单面打印,论文50页以 上的双面

4、打印 4)图表应绘制于无格子的页面上 5)软件工程类课题应有程序清单,并提供电 子文档 5 装订顺序 1)设计(论文) 2)附件:按照任务书、开题报告、外文译文、 译文原文(复印件)次序装订 3)其它 MVC模式是一种可应用于J2EE的开放式框架结构。它允许Web页面或其 它浏览内容(视图层)能够最大限度的与内部代码(模型曲制层)分离开来, 从而使设计者和程序员能够将注意力集中在他们各自的专门技术上。并因Java 的“一次写入后,任何处运行”的特性而提高了开发效率。 本论文着眼于在JBuilder环境下应用MVC模式开发机关办公自动化系统 的核心功能,即发/收文管理、工作流控制以及用户管理。

5、本论文以我们OA小组开发的机关办公自动化系统WebOA为例,介绍了 由本人参与设计的发/收文工作流模块和用户管理模块的相关技术,并进行程序 结构分析和具体功能实现阐述。 关键词:MVC模式J2EE相关组件机关办公自动化 发收文管理工作流用户管理 ABSTRACT MVC is an open source framework for JSP Web applications. This design model allows the Web page or other contents (View) to be mostly separated from the internal applic

6、ation code (Controller/Model)9 making it easier for designers and programmers to focus on their respective areas of expertise. It improve the efficiency of the development process thanks to JAVA aWrite Once9 run anywhere nature. This dissertation focuses on implementation of MVC patterns to develope

7、 Office Automatic system for Bureau (OA-B) which run on JBuilder environment and mainly introduce its kernel functions theory such as Message Send package .ssct.oa.doc.persistence; / 加载 persistence /*根 在返回才 融果不存 import .ssct.DBConnBean; import Java.sqLConnection; 包、 .ssct.oa.doc.va

8、lueobJect.DocRecVO; /用 VO public DocRecVO queryByID(String id) DocRecVO docRecVO = null; PreparedStatement stat = null; ResultSet rs = null; String strSql = select * from Doc_Tb_Rec where RecDocNo=? /嵌入sql语句査询 .ssct.DBConnBean.getlnstanceO; Connection conn =ObjDBConnBeangetConnectk)n(”goa”); t

9、ry stat = conn.prepareStatement(strSql); statsetString(l9id); rs = statexecuteQueryO; while (rs.next() docRecVO = new DocRecVO(); docRecVOsetRecDocNo(rs.getStiingCRecDocNo”); docRecVO.setCome_Title(rs.getString(n Come_Title *); docRecVO.setCome_Doc_No(rsgetStiingCome_Doc_No”); clocRecVO.setCome_Doc_

10、Dept(rs.getString(tlCome_Doc_Depttt); docRecVO.setDC_Doc_Exigence(rs.getString(, 1D C_Doc_Exl gence *1); clocRecVO.setDCDocSecurityCrs.getStringCDCDoc.Security11); docRecVO.setIn_Doc_No(rs.getString ( ,In_Doc_Not 1); docRecV 0.setIn_Doc_Date(rs.getString(f tIn_Doc_Date,t); docRec VO.setIn_Doc_Dept(r

11、s.get String(1 ,In_Doc_Depttf); docRecVO.setCome_Content(rs.getString(HCome_Content,1); docRecVO.setMemo(rs.getString(tlMemo,t); docRecVO.setFile_ID(rs.getString(,File_IDM); clocRecVO.setEnter-User-No(rs.getString(,lEnter_User_Nott); docRecVO.setEdit_DateTime(rs.getString(,Edit_DateTimeH); (locRecVO

12、setEnter_DateTime(rsgetStringCEnter_DateTime); docRecVO.setRecordID(rs.getString(HRecordIDH); docRecVOsetTemplate(rsgetStringTemplate); docRecVO.setFileTvpe(rs.getString(t,FileTvpeH); docRecVO-setHTMLPath(rs.getString(t,HTMLPathH); docRecVO.setStatus(rs.getStrlngStatus); docRecVO.setMain_Do-User-Nos

13、(rs.getString(HMain_Do_User_Nos,1) docRecVO.setOther.DoUser.NosCrs.getStringCOther.DO-User.Nos11) ); docRecVO.setSend_RecordID(rs.getString(tfSend_RecordID,r); 撤囑融礬黔收谿辭备雀 catch (SQLException e) SysDebug.prt(this/,querjrByID(String)t,trSql,e); finally dbjDBConnBean.freeConnection(,goa,conn); return d

14、ocRecVO; /* 旬 _个空蟒曜褫勰辭曲果不存在返回 public Collection queryByDynamicSql(String conditionSql) Ar ray List docRecVOList= new ArrayList(); DocRecVO docRecVO = null; Statement stat = null; ResultSet rs = null; “)没选定任何条件 strSql = Hselect * from Doc_Tb_Rec H; String strSql =,M; if(conditionSqLequalsIgnoreCase(

15、strSql = Hselect * from Doc_Tb_Rec Where ,f + conditionSql; .sscLDBConnBean ObjDBConnBean = .ssct.DBConnBean.getInstance(); Connection conn =ObJDBConnBean.getConnection(,goat,); try stat = conn.createStatementO; rs = statexecuteQuery(strSql); while (rs.next() docRecVO = new DocRecVO(); d

16、ocRecVO.setRecDocNo(rs.getString(f RecDocNo11); docRecVO.setCome_Title(rs.getStrlng(, 1 Come_Title ”); docRecVO.setCome_Doc_No(rs.getStrlng(nCome_Doc_NoH); clocRecVO.setCome_Doc_Dept(rs.getString(tlCome_Doc_Depttt); docRecVO.setDC_Doc_Exigence(rs.getString(HDC_Doc_Exigence,r); clocRecVO.setDC.DocSec

17、urityCrs.getStringCDC.Doc.Security11); docRecVO.setIn_Doc_No(rs.getStringf,In_Doc_NoM); docRecVO.setIn_Doc_Date(rs.getStrlng(f tIn_Doc_Date,t); docRecVO.setIn_Doc_Dept(rs.getString(,In_Doc_DeptM); docRecVO.setComeContenUrs.getStringCCome.Content11); docRecVO.setMemo(rs.getString(, 1 Memo1); docRecVO

18、.setFile_ID(rs.getString(tlFile_IDM); docRecVO.setEnter_User_No(rs.getStrlng rEiiter_LJser_No”); docRecVO.setEdit_DateTime(rs.getString(t,Edit_DateTlme,t); docRecVO.setEnter_DateTime(rs.getString(l,Enter_DateTime,t); docRecVO.setReconlID(FSgetStringReconlID”); docRec VO.setTempla te(rsgetSt ring(1T

19、emplate,r); docRecVO.setFileTYpe(r docRecVOetStatus(rs.getString(t,Statust,); docRecVO.setMaln_Do-User_Nos(rs.getString(t,Main_Do_User_Nos,t) docRecVOsetOther_Do_User_Nos(rsgetString(Other_Do_User_Nos”) ); docRecVOsetRead_Do_User_Nos(rs.getStringRead_Do_LJser_Nos”); docRecVO.setSend_RecordID(rs.getS

20、tring(tfSend_RecordIDu); docRecVOLIst.add(docRecVO); catch (SQLException e) SvsDebug.prt(this/lquenrBvDvnamlcSql(String),strSql,e); finally ObjDBConnBean.freeConnectionCgoaconn); return docRecVOList; 首先,在一开始要调用一个persistence包以使VO(值对象)与数据库之间 的数据交互,然后建立JDBC连接,以便JavaBean将VO的值传给SQL。在根 据条件如来文标题、来文文号.来文单位.

21、紧急程度、公文密级.收文编号. 收文日期、备注等信息进行组合査询,这一步将调用SQL的査询语句完成,而 在最后生成一个viewjsp的页面文件。 我们利用UML语言建立上述收文查询的顺序图,它是用来描述对象之间的 动态合作关系以及合作过程中的行为次序。 它包含一系列对象:ClientfViewServletf Search (Rec VO)View.jsp SQL数据库。虚线表示该对象的生命线。箭头表示消息串。可细分为简单消 息如1, 2, 3, 4, 5, 7, 8和异步消息如6, 9。 4J建用于保存结果的:。llecti时象 n 5从数据库査询结果集中读取数mfiCollectio 丄

22、6 把Collecti 綵存到request I 7 forward I 图5-11收文査询操作的顺序图 4.2用户权限管理 在、VebOA系统中,主要是管理用户的一系列活动,包括公告、通知等来 输入的数据信息。数据类型决定了处理的方式也就是算法,因此,数据是系统 实现的起点。在此,我们将使用数据流图(DFD)来分析数据的流动和走向。 因为对每一种对象的管理都比较类似,在此仅以行政办公中的公文管理的 权限,来分析一下本系统中的数据流向. 主要数据关系是管理员对该子系统涉及的相关数据进行管理,而用户在前 台可以浏览査询相关信息,总体图如图31所示。零级图如图32所示。 图43用户管理子系统总体图

23、 管理员 査询结杲询请求 用户信息 表_存 80 、 数据库資询字符串佶息査询 査询结果棗处理 / 更新数据库更新数睜 Borland corporation 16 Mike Rozlog, Geoffery LGoetz, Sung Nguyen Master JBuilder Wiley Publish, Inc 17 Paul C. Jorgensen. Software Testing A Craftsmans Approach(second Edition)MJ. China Machine Press,2003, 170175 18 Soren Lauese n. Soft war

24、e Requireme nts Styles and TechniquesM Beijing: Publishing House of Electronics Industry, 2002. 10, 25-90. 19 Kevin Duffey, Vikram Goyal Professional JSP Site DesignM Beijing: Publishing House of Electronics Industry, 20021一75 1J 12 3 4 5 2 2 2 2 2 rL 20 Hans Bergsten. JavaServer Pages_2nd Edition M

25、. OReilly, August 2002, 1-500. http:/java sun. com http:/ww. kissjava, com http:/www yesky. com/SoftChannel http:/ww. ccidnet. com http:/www csdn com 附录:发文管理源代码 aort cnedusscteoa ueoDiecteWoc PubncBean; package .ssct.oa.doc.persistence; ifflB8ttssct.oa.doc. valueobiect.DocSendV O; import cnedu

26、sscLoaPubncBean; 5ysJLeou HBConnl Connection; ean; import cnedussctSysDebug; import cnedussct import java.sql賛 import javasqL import java.ufil.*; public class DocSendOP 隣瞰册豔如ance(); Puft烛费刪bjPublic 蟲n = new public DocendOP() /* *功能:插入DocSendVO值对象 寒 param docSendObj DocSendVO 值对象 * return int 1表示成功;1

27、表示失败 doP 輸醐 PcSend_Insert(Object int result = 1; (Doc PreparedStatement stat = null; Stems saL=nINSERT INTO 999999999999 门” 丿, mt rowCount = 0; try conn.prel?lstatement(sql); s|pLsetString(l9docSendVO.getSendDocNo( stat.setString(29docSendV O.getTitle(); StaLsetStrmg(3,docSendVO.getMainTitle() s|:at

28、.setString(49docSendVO.getDocFileNo() |setString(5,docSendVO.getDC_Doc_So 龍貼滩(卯ring(6,docSendVOgetDC_Doc_Ex g|tring(7,docSendVO.getDC_Doc_Se (.setString( stat.setString(12docSendVO.getMemo(); stat.setString(13,docSendVO.getFile_n)(); |lt|.eitrmg(149docSendVO.getEnter_Use s|:at.setString(15,docSendVO

29、.getRecordID() s|:at.setString(16,docSendVO.getTemplate() tat.setString(17,docSendVO.getFileType() setString(18,docSendVO.getHTMLPat stat.setString(19,docSendVO.getStatus(); gt.setStrmg(20,docSendVO.getDocRecNo( ,rowCount = stat.executeUpdateO: irowCountl) result = -1; Arrnr fstfm.out.pFintlnCInsert

30、 + catch(SQLException e) result = -1; Spjig.prt(this, * docSend_Insert(Object) return result; *功能:更新DocSendVO值对象 * param docSendObj DocSendVO 值对象 46 return int 1表示成功;1表示失败 廉删 gcSendJUpdat(Object int result = 1; (DocSfeF幽W 勰涮%。= Obj ifi蹩 RS 虑蛊用関?CbnnectionC goa n); Send :e PraredStatemtsty = null: +

31、n WHERE SendDocNo = ?n; int rowCount = 0; try conn.prel?lstatement(sql); stat.setString(l,docSendVO.getTitle(); tat.setString(2,docSendVO.getMainTitle() at.setString(3,docSendVO.getDocFileNo() |i|setStrmg(4,docSendVO.getDC_Doc_So 遊 stat.setStrmg(ll9docSendVO.getMemo(); stat.setString(12,docSend V O.

32、getFile_ID(); |lt|etrmg(13,docSendVO.getEiiter_Use s|at.setString(149docSendVO.getRecordID() atsetStrmg(15,docSendVO.getTemplate() tat.setString(16,docSendVO.getFileType() |setStrmg(17,docSendVO.getHTMLPat stat.setString(18docSendVO.getStatus(); st3t.setString(19,docSendVO.getDocRecNo( toLsetStrmg(2

33、0,docSendVO.getSendDocN rowCount = stat.executeUpdateO: if(rowCountl) result = -1; 吨曲咖榊创鹹() catch(SQLException e) result = -1; ys|hg.prt(this/fdocSend_Update(Objec return result; /* *根据主键査询发文值对象 * param id公文编号 * return docSendVO对象,如果不存在返回一个空对象,但不允许返回null / public Object quervBylDfString id) DocSenaV

34、CrdocSendVO = null; PreparedStatement stat = null; ResultSet rs = null; DocS毗end銅曲酬岳鉀; i =01)亞股?8谢艇品握 tConnectionC goa n); conn. conn.pre stat.setString(l 9m); rs = stat.executeQuery (); while (rs.next(Y) f =new DocSendVO(y?cSengO.setMaiiiTitle(rs.getString( nMa 贈掘他門评setDocFileNo(rsgetStringDo 枫旳帰 t

35、BF_Doc_Sort(rsgetStfingC 晦沁赴淳媚關咏igence(rs.getStr 昭阳噪亦 ecurity(rs.getStri 擴肃眄张护呱endDepUs.getStringC 电鮎門并 Send_Dept(rsgetStringC d 綬 g册紳PrtDPt(getString( d 儈蔬O.setPrint_Num(rs.getInt(, Print d 托 SendV O.setMemo(rs.getString(HMemo gcSpnd V O.setFile_n)(rs.getS tring(f 1 File_I 艸 WW軸炼 UserNoggetstring 隔

36、融酬側 4eTime(rs.getString 护運臧E昶fifll 眄輕 teTime(rs.getStrin 怡咛* O.setRecordID(rs.getS tring(T1 Rec |gy,O.setTemplate(rs.getString(HTe 典僅門 $VOsetFileType(rs.getStringCFile 胸瞬曲气员 etHTMLPath(rsgetStringH QcSendV O.setStatus(rs.getString(1 Status1 catch (SQLException e) |bug.prt(this, *f queryBylD(String)n

37、 ,str finally Q|yDBConnBeaii.freeConnection(, goa1,co return docSendVO; *根据主键査询发文值对象 * param id公文编号 * return docSendVO对叙 如果不存在返回一个空对叙 但不允许返回null */ public Collection queryAII() ArrayList arrList = new ArrayList(); DocSendVO docSendVO = null; Statement stat = null; ResultSet rs = null; Docjft蠻nd吧rSql

38、 = select * from 涵鯉Stes臥g(); =ObjlSE3 益巒酸用舉?Connection goa n); try =new stat = conn.createStatement(); rs = stat.executeQuery (strSql): while Q-s.next() f DocSendVO()r0cSen 飙能敬疆J 背 tSendDocNo(rsgetString(”S docSendV O.setTitle(rs.getString(H T itle n); jpgd|YO.setMamTitle(rs.getStrmg(nMa 筛掘聞setDocFi

39、leNo(rsgetString( Do 胆阪Q 阎怦 tpy_Doc_Sort(rs.gtS tringC 沁邮超BSyfe咏igence(rs.getStr 瞅昭颐严余 curity(rs.getStri 擴器眄Kg誉胛 Send_Dept(rs.getStfing gtCSend_Dept(rs.getString(n d綬册逬阚紳铲吃Dept(rsgetString( df曲护邛OsetPrint_Num(i*sgetIntC Print d 冼 Send V O.setMemo(rs.getString(f 1 Memo T5*ndvoset:FileID(rsgefsfring(=

40、FiJleI P 坯蛊千 userNO(rsgering 盘电 V 宙 eTime(rs.ge曾ing 幫農B鞠誉鷺右目(賃豎嘗 syo.sef RecordID(rsgef Sf ring(二 Rec 笔NosefTemp_afe(rsgefsfring(=Te 审尬QVOsefFiIeType(rsgetst:ring(me 4fKHfefHTMLPafh(rsgefsfring (二 H csendv o.sefsf afus(rsgef Si ring(二 Siaf us 二 9 arrLisf add(docsend V o); cafch (SQLEXCepfion e二 Sy SDebug.prf (fhF二

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论