办公自动化系统OA系统分析与设计

上传人:陈** 文档编号:100584376 上传时间:2022-06-03 格式:DOCX 页数:19 大小:369.46KB
收藏 版权申诉 举报 下载
办公自动化系统OA系统分析与设计_第1页
第1页 / 共19页
办公自动化系统OA系统分析与设计_第2页
第2页 / 共19页
办公自动化系统OA系统分析与设计_第3页
第3页 / 共19页
资源描述:

《办公自动化系统OA系统分析与设计》由会员分享,可在线阅读,更多相关《办公自动化系统OA系统分析与设计(19页珍藏版)》请在装配图网上搜索。

1、概述OA是Office Automation的缩写,本意为利用技术的手段提高办公的效率,进而实现办公的自动化处理。实现信息化、无纸化办公,可方便的生成统计报表等。OA是OFFICE AUTOMATION的缩写,本意为利用技术的手段提高办公的效率,进而实现办公的自动化处理。采用Internet/Intranet技术,基于工作流的概念,使企业内部人员方便快捷地共享信息,高效地协同工作;改变过去复杂、低效的手工办公方式,实现迅速、全方位的信息采集、信息处理,为企业的管理和决策提供科学的依据。OA软件解决企业的日常管理规范化、增加企业的可控性、提高企业运转的效率的基本问题。范围涉及日常行政管理、各种事

2、项的审批、办公资源的管理、多人多部门的协同办公、以及各种信息的沟通与传递。可以概括的说,OA软件跨越了生产、销售、财务等具体的业务范畴,更集中关注于企业日常办公的效率和可控性,是企业提高整体运转能力不可缺少的软件工具。系统作用组织的核心竞争力源自单位对内外部资源的有效利用。对它们之间的关系进行协调,最大限度的发挥所有资源的作用,并用系统的观点,在整个系统价值最大化的基础上来发挥各个资源的作用,使资源的运作产生协同效用。因此可通过协同办公系统打造单位的核心竞争力。本协同办公系统的主要作用为:1、 建立内部的通信平台。2、 建立信息发布的平台。3、 文档管理的自动化。4、 工作流程的自动化。5、

3、行政日常事务处理。6、 安全机制的可靠性。本系统旨在加速单位信息化进程,充分利用计算机和现代通讯手段面向单位服务。建立单位内部信息交流的快速通道,以共享信息资源。强化部门业务管理,加强各业务部门之间的交流。实现单位信息的快速上传下达,促进协同办公。提高办公效率,为各级领导及业务人员提供辅助办公和决策服务。1、 本系统将最大限度地提高办公效率和办公质量,降低管理和办公成本,改善办公环境和条件,提高办公管理和决策的自动化和科学化水平。2、 以人为中心,致力于帮助用户实现共享资源、规范流程、推动执行的目的。帮助用户节省办公费用,减少中间环节,优化业务流程,提高整体效率,促进管理进步。设计原则以应用为

4、核心,要突出“实用、易用、简洁、稳定”。既注重实效,满足用户的现实需要,又为系统的后续升级和扩展留有余地。在技术实现上,要突出“结构清晰、实现合理、通俗易懂(简单)”。1. 实用:满足用户现实需要,解决实际问题,做细核心功能。2. 易用:使用方便,各项功能一目了然。满足用户的使用习惯,易使用、易维护、易升级。实现“傻瓜”式的操作,将实施、培训成本和周期降到最低。3. 简洁:页面简洁,功能简洁,每一个元素都有存在的意义。4. 稳定:从底层数据库到功能层经过严格测试,能在不同的硬件环境中长期平稳运行。功能说明OA是辅助办公的软件,使用OA与不使用OA相对比的好处是:可以用计算机管理所有的数据,并可

5、以方便的实现统计与报表的功能。提高办公效率。(实现信息化)。以下是一个OA系统的全部功能列表:说明:不是所有的OA都有全部的功能,而是根据需要确定的。软件开发的步骤说明需求确认概要设计详细设计编码单元测试集成测试系统测试维护。单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起

6、来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案。整体说明要完成的功能模块功能说明组织与用户管理岗位管理部门管理用户管理权限初始化权限分配权限验证权限网上交流-论坛版块管理看帖、发帖、回帖文章管理审批流转(工作流)表单模板管理审批流程管理审批流转表单查询说明:按列出的顺序实现功能。效果以静态页面为准。分层一、JavaEE的三层架构二、关于分层的说明

7、1,上面调用下面,即View调用Service,Service调用Dao。2,层与层之间用接口。除定义的接口外,不能使用其它层的特有类或接口。3,使用实体作为DTO(Data Transfer Object,数据传输对象)要做到任一层换掉后,其他层不受影响。我们在此项目中使用两层:View+Service即在Service中直接操作Hibernate.Session。因为如果使用三层,在Service中就会有一部分方法只是直接调用DAO中的方法。一般情况下只有在多个数据源的场合下适合引入DAO层。三、有关分层的几个问题1,一定要分层吗?不一定。假如公司要求你写一个可以给指定员工发送短信的小程序

8、,用于开会通知与自动发送生成祝福短信。这个程序很小,没有多少行代码,而且不变,这时不分层可以吗?完全可以呀。但我们在写程序时,还是要分层的,分层的程序结构清晰,可维护性高。2,一定要3层吗?不一定。分3层是推荐的,而不是必须的,应根据自己的具体情况进行安排。我们如果使用3层的结构,用起来就麻烦,因为在Service中会有一部分方法只是直接调用Dao中的方法,而Dao中的方法只是调用Session完成某操作。此时分2层更好,即在Service中可直接操作Session,以简化结构。其实Hibernate已经可以支持多种数据库。3,一定要使用接口吗?不一定。以前就有同学问我:“在设计程序时确定的技

9、术在开发后一般不会更换的,实现类一般也不会更换,这种情况还用接口吗,一般的小项目是不是可以不使用接口?”。是的,如果不会变(一般也不会变),这是完全可以的。我们所学习的框架、技术都是解决问题的推荐方案,而不是必须要用的。遇到问题后优化使用成熟的技术与方案,以避免很多潜在的或后发的问题,避免走不必要的弯路。所用框架、技术编号工具版本说明1.Struts 1.3.82.JSTL 1.13.Hibernate 3实现持久化操作4.jBPM工作流支持5.Junit4单元测试6.jQuery说明:还有jQuery.validate与jQuery.treeview等小插件开发环境操作系统Windows X

10、P开发工具MyEclipse6.0数据库MySql5.0.22Web容器Tomcat6.0浏览器IE6说明:推荐使用MyEclipse,这样出现工具问题可以一起解决。当然也可以使用自已熟悉的工具,如Eclipse、NetBeans、IntelliJ。重点是代码,不是工具。应使用有效的工具。约定1, 工程中所有的文件都采用utf-8编码。所有的页面都是使用utf-8编码,这样方便解决表单内容的乱码问题。乱码一般情况下是乱用编码产生的。2, 实体的主键属性的类型使用Long型。代码规范1, 命名:使用驼峰命名法。2, 注释:在代码中加入适当的注释:说明步骤,与说明非简单逻辑。3, 空行:在代码中加

11、入适当的空行,就像写文章时要分段一样(增强可读性)。总之,要保证代码的清晰、简洁、可读。详细设计TODO 详见每一个模块对应的文档环境与工程配置主要配置开发工具、MyEclipse工程、数据库。1,新建Web工程,名称为:ItcastOA。2,使用数据库名为:itcastoa_$当前日期。3,工程编码使用UTF-8。不要改workspace编码,因为他会影响里面的所有工程。配置工具配置快捷键1, 把Content Assist设为Alt+/2, 把Word Completion 设为Alt+.3,其他常用快捷键说明:Alt+/Content Assist代码提示Ctrl+T显示类的继承结构Ct

12、rl+O列出类中的成员(成员变量、方法等)Ctrl+/注释/取消注释Ctrl+Shift+O导入要使用的包、并去除不使用的包Ctrl+Shift+F格式化当前文件中的代码/格式化选中的代码Ctrl+Alt+Up复制当前行到下面Ctrl+Alt+Down复制当前行到上面Ctrl+D删除当前行/删除选中文本占的所有行Shift+Enter相当于按End后再按EnterAlt+LeftAlt+RightCtrl+Shift+X变为大写Ctrl+Shift+Y变为小写配置文件的默认编码1, 配置JSP的默认编码为utf-82, 配置JavaScript的默认编码为utf-8说明:在MyEclipse7

13、.x不用修改,配置格式化的代码样式1, 使用Ctrl+Shift+F可以格式化代码。2, 在WindowPreferencesJavaCode StyleFormatter中可以设置代码样式。 要把Java代码与注释的行宽设为130。(其他使用默认样式)3, 搜索XML Sources,修改xml的行宽为130。(不考虑打印的情况)MyEclipse工具使用说明1, 导入工程时可以直接选择一个zip文档:FileImportExisting Projects into Workspace-Select archive file。2, 工程改名后,发果发布到Tomcat下,对应的应用的名称不一定

14、改变。这个名称是在MyEclipse Web中的Web Context-root中配置的。创建数据库使用MySql数据库。创建数据库时,要注意编码要支持中文。建表语句如下:create database itcastoa default character set utf8;show create database itcastoa;新建Web工程并准备环境新建一个Web Project,并设置工程的编码为UTF-8。添加框架环境1, 添加Junit4的Jar包。2, 添加Struts1.3.8环境:a) jar包b) 配置文件(struts-config.xml、修改web.xml)、国际化

15、资源文件、自定义标签库的TLD文件。配为*.do拦截的请求。3, 添加Hibernate环境:a) jar包(含JDBC驱动的jar包)b) 配置文件(hibernate.cfg.xml)。4, 添加jBPM环境(Jbpm的jar包中已包含Hibernate的jar包)。说明:1, JSTL 已包含在JavaEE5.0中,所以不用配置。2, 不要引用外面的Jar包,应全部拷贝到工程中。配置数据库修改Hibernate.cfg.xml中的数据库连接信息。并在hibernate.cfg.xml中做如下配置:trueupdate目录结构源码文件夹src项目源代码 config配置文件 test单元测

16、试WebRoot文件夹下 scriptJavaScript脚本文件 styleCSS样式文件 WEB-INF/jspjsp页面文件(再创建子文件夹分类存放)包结构使用三层:显示层(View),业务层(Service),数据访问层(Dao)包名说明cn.itcast.oa.domain实体(Domain)cn.itcast.oa.daoDao接口cn.itcast.oa.dao.implDao的实现类cn.itcast.oa.serviceService接口cn.itcast.oa.service.implService的实现类cn.itcast.oa.web.strutsStruts有关的类c

17、n.itcast.oa.web.struts.actionStruts的Actioncn.itcast.oa.web.struts.formbeanStruts的FormBean(ActionForm)cn.itcast.oa.util一些工具类cn.itcast.oa.cfgcn.itcast.oa.web.filter基础功能BaseDao与BaseDaoImpl的设计每个实体都应有一个对应的Dao,他封装了对这个实体的数据库操作。例实体Dao接口实现类=User- UserDao- UserDaoImplRole- RoleDao- RoleDaoImplDepartment- Depa

18、rtmentDao- DepartmentDaoImplArticle- ArticleDao- ArticleDaoImpl.说明:1, 实体的Dao接口要继承BaseDao接口。2, Dao的实现类要继承DaoImplBase类。3, 也可以不继承指定的接口或类,这样就要自己写相应的方法。4, T getById(Long id)与List getByIdList(Long idList)不要合并为List getById(Long. ids),因为获取一个对象时也是返回List,不方便。问题:1, 有了DaoBase与DaoImplBase,还要用UserDao、RoleDao吗?答:要

19、用。因为UserDao或RoleDao中的方法可以分为有公有的方法与特有的方法两部分。公有的方法是通过继承BaseDao得到的,特有的方法要写在自己里面(BaseDao中是没有的)。2, UserDaoImpl已经继承了BaseDaoImpl,就不实现UserDao可以吗?答:不可以。否则UserDao userDao = new UserDaoImpl(); 就不成立。使用反射获取类型参数的真实类型的代码如下:public DaoBaseImpl () Type type = this.getClass().getGenericSuperclass();ParameterizedType p

20、t = (ParameterizedType) type;this.clazz = (Class) pt.getActualTypeArguments()0;说明:1, 使用Session时,不要自己创建,也不要管理事务,直接调用getSession()即可。2, 暂时不实现getSession()方法,在后面的事务管理中实现:protected Session getSession() throw new UnsupportedOperationException();事务管理(Session管理)事务边界。1,一个事务的范围是一个业务操作。转帐()A - 100; / update/ th

21、row exceptionB + 100; / update2,在Dao中只是使用Session,而不管理Session与事务3,一次请求的执行过程1,在Action中要做什么?1,获取用户输入2,进行业务处理(调用业务方法)3,给用户反馈(转到一个显示页面)1, 事务说明:事务的范围是一个业务方法,而不是一个数据库操作。可以用银行转账的例子来说明。2, 事务管理就是要解决两个问题:a) 在同一个请求中怎么使用同一个Session?b) 怎么才能不重复写业务方法中的开关Session与管理事务的模板代码?3, 解决思路:a) 第一个问题:使用SessionFactory.getCurrentS

22、ession()b) 第二个问题:使用过滤器,拦截的地址为“*.do”。4, 说明:a) 每个请求使用一个线程来执行。b) 同时执行的多个请求是多个不同的线程。c) 先后的两次请求,有可能使用的是同一个线程(Web容器有线程池)。要使用SessionFactory.getCurrentSession()方法,需要先在hibernate配置文件中做如下配置,否则不能使用(会报错):“thread”配置后影响的行为如下:SessionFactory.getCurrentSession()获取当前线程对应的Session,如果没有(一个线程中的第一次调用),就会创建一个Session并关联到当前线程

23、后返回。Tmit()提交事务,在提交后会自动关闭SessionTransaction.rollback()回滚事务,在回滚后会自动关闭Session说明:如果配置了currentSessionContext,在提交或回滚事务后会自动关闭Session。使用时就不要再调用关闭的代码了。在关闭的时候就会出现异常了。注意:SessionFactory.openSession()后,本次打开的Session不会与当前线程绑定,也就是说用SessionFactory.getCurrentSession()是拿不到的!对象管理(BeanFactory)使用工厂模式完解决对实现类依赖的问题,并使用配置文件配

24、置要使用的实现类。需要一个工具类,名为BeanFactory,其中有一个获取实现类的方法,可以定义为:Object BeanFactory.getBean( clazz ); 或 T BeanFactory.getBean(Class clazz)在实现时,所使用的实现类应是在配置文件(BeanFactory.properties)中配置的。解决提交的表单内容的中文乱码因为所有的页面都将使用utf-8编码,所以提交的表单也是utf-8编码。在过滤器中设置request的编码为utf-8就可以解决POST方式提交表单的中文乱码问题: public void doFilter(ServletReq

25、uest request, ServletResponse response, FilterChain chain) request.setCharacterEncoding(utf-8);chain.doFilter(request, response);对于GET方式乱码不做处理。如做处理,可使用包装或代理的方式。出现问题了,怎么办?解决异常的方法1, 先看一下是什么异常。比如NullPointerException,是说明某行代码中的“.”前面的对象为null;或是异常java.langClassNotFoundException,是找不到类异常。这时还要看异常的类型与后面的简单信息,如

26、java.lang.ClassNotFoundException: java.lang.String。说明是java.lang.String这个类找不到。在这一步要搞清楚是什么错误。2, 找到出错的代码位置。a) 在异常信息中会显示出错时执行的代码是在哪一行,并且有超链接,点击就可以了。b) 错误不在Java代码中,如异常javax.servlet.ServletException: mands.InvalidPathException: No action config found for the specified url.就是说访问的.do地址没有进行Action配置,这时就知道应该打s

27、truts-config.xml。3, 根据异常类型进行推测,一般的异常就可以解决了。如NullPointerException,就找这一行中的“.”然后看是不是为null,如果是,找出某对象为null的原因,问题就解决了。说明:1, 调试代码时,最好关闭所有其他的工程,在有多个工程代码相近的情况下尤其要这样做,比如有两个工程分别为ItcastOA_1、ItcastOA_2。否则可能会出现代码写错地方的情况,或是点击异常信息中的超链接,转到的是另外一个工程中的相同名称的类中。2, 异常要看最下面的,即最后一个“Caused by:”,因为他是最里层的。上面的异常都是捕获某异常后包装后再次抛出的

28、。一些的异常的解决办法java.lang.IllegalArgumentException: node to traverse cannot be null!java.lang.IllegalArgumentException: node to traverse cannot be null!org.hibernate.hql.ast.util.NodeTraverser.traverseDepthFirst(NodeTraverser.java:31)org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.jav

29、a:254)org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)org.hibernate.hql.ast.QueryTranslatorIpile(QueryTranslatorImpl.java:111)org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77)org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)原因1: HQL语顺的词法有错误,

30、这时应找到出错的代码在哪一行,找出HQL中的语法错误。java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)Vjava.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)Va

31、t org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:179)at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:248)at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)at org.hibernate.hql.ast.QueryTranslatorIpile(QueryTranslatorIm

32、pl.java:111)at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77)at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionI

33、mpl.java:133)at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623). 40 more原因1:只要是java.lang.NoSuchMethodError: org.hibernate.hql.antlr.,一般是由于HQL语顺的词法有错误,如写查询所有User时”FROM User”,From后没有加空格等。这时应找到出错的代码在哪一行

34、,找出HQL中的语法错误。原因2:有一同学也报类似的错误,不过他的原因是jar包冲突。在他的lib/中有:antlr2.7.6与antlr2.7.2,删除antlr2.7.2后就正常了。他的异常信息如下:Caused by: java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)Vat org.hibernate.hql.antlr.HqlBaseParser.statement(

35、HqlBaseParser.java:179)at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:248)at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)at org.hibernate.hql.ast.QueryTranslatorIpile(QueryTranslatorImpl.java:111)at org.hibernate.engine.query.HQLQuery

36、Plan.(HQLQueryPlan.java:77)at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)at org.hibernate.impl.AbstractSession

37、Impl.createQuery(AbstractSessionImpl.java:112)at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623). 42 morejava.lang.IllegalArgumentException: Resources cannot be null.异常信息如下:java.lang.IllegalArgumentException: Resources cannot be null.at mons.validator.Validator.(Validator.java:158)

38、at org.apache.struts.validator.Resources.initValidator(Resources.java:507)at org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:111)at mands.servlet.ValidateActionForm.validate(ValidateActionForm.java:58)at mands.AbstractValidateActionForm.execute(AbstractValidateActionForm.java:1

39、20)at mands.ActionCommandBase.execute(ActionCommandBase.java:51)at mons.chain.impl.ChainBase.execute(ChainBase.java:190)at mons.chain.generic.LookupCommand.execute(LookupCommand.java:304)at mons.chain.impl.ChainBase.execute(ChainBase.java:190)at org.apache.struts.chain.ComposableRequestProcessor.pro

40、cess(ComposableRequestProcessor.java:283). 19 more原因:写的FormBean类没有继承ActionForm。解决问题的方式说明与一些建议1, 出问题了,要先从简单的原因入手,是快速解决问题的一个好办法。例如显示器不显示了,不要直接把他拆掉,而应先检查有没有插电源。在我们现阶段(水平还不是很高),有很多错误就是这样简单的原因,所以更要这样做。2, 没有很快的解决问题,也不见得是水平不高,也有可能是自己的状态太不好了。有时在熬夜写程序时遇到一个小问题,却怎么都解决不了,有可能两个小时都搞不定,这时就该休息了,也许第二天早上再看时,一眼就能看到问题所在。还有一个办法,就是让别人帮你找错,不一定要找一个水平比你高的人,他可能很快就能找到错误原因。当然我们还是要保重身体,保持最好的状态,这才是更重要的。3, 总是能解决问题的是高手,总是能避免问题的则是更高的高手。我们就要注意避免问题,要防治结合。怎么才能避免问题呢?有一个好方法是就养成良好的书写习惯,比如总是使用驼峰命名法、慎用缩写等等。如AF是代表ActionForm呢还是ActionForward呢,除非都很请楚,否则不能用,如用Del表示Delete就很清楚。咱们同学就有好几个在大小写上出了问题了,这应该是可以避免的。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!