还剩42页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
摘要随着__的进一步发展,__职能正在从传统的管制__向服务型__进行转变,为了进一步更好地服务大众,采用信息化能更规范化、制度化、高效地为群众服务在工商领域,工商管理行政管理局基于上述目的设立了12315申诉举报____,为广大人民群众提供消费__服务,并依托信息化系统快速处理本系统设计使用MyEclipe为前台__工具,Oracle10g为后台数据库,采用B/S三层结构,利用JDBC实现应用程序对数据库的连接在微软Windows操作系统环境下,数据库服务器__Oracle10g,应用服务器__Weblogic9,客户端使用IE浏览器进行访问,系统实现了案件登记、案件分流、案件反馈等功能关键词:OracleWeblogicJDBCB/S登记分流反馈备份目录TOC\o1-3\h\z\u
一、引言5
二、项目背景5
三、__技术相关介绍5一J__a语言简介5二J2EE简介5三Oracle10g数据库6四__工具及环境
61、硬件环境
62、软件环境6五服务器端运行环境
61、硬件环境
62、软件环境6
四、需求分析6一需求分析6二需求说明书
71、系统首页
72、案件登记
83、案件分流
84、案件反馈
85、信息查询
86、报表统计
87、系统管理8
五、系统设计9一系统用例图9二处理流程图10三系统架构
101、表示层
102、业务层
103、持久层11四数据库设计
111、创建数据库
112、创建数据库用户
113、数据库表结构
114、数据库表间关系
205、数据库备份策略20五公共模块设计
201、__信息
202、公用页面
203、CSS样式
204、公用类21
六、系统界面和功能实现21一系统登录21二系统首页23三案件登记25四案件分流28五案件反馈30六信息查询31七报表统计31八系统管理
331、单位管理
332、部门管理
363、人员管理
384、角色管理
395、公告管理42总结44____目录
451、引言随着信息化的发展,信息系统在电子政务应用中越来越广泛,使__部门行政管理更有效、精简,更公开、透明工商行政管理局作为__主管市场监管和行政执法的工作部门,保护经营者、消费者合法权益是其职责之一为了切实解决广大消费者投诉难的问题,及时、方便、快捷受理消费者诉求,国家工商行政管理总局在原_____的大力支持下,在全国统一开通了12315消费者申诉举报专用__全国各级工商行政管理机关以12315__为依托,建立了以现代信息技术为主要手段,集受理、查处、监管为一体,覆盖全国城乡的12315消费申诉举报服务网络12315专用号码的启用,进一步畅通了消费者的诉求渠道,更加方便工商部门及时受理和处理消费者申诉举报,更好地保护消费者权益,严厉打击制售假冒伪劣商品的行为,及时有效地查处各类经济违法违章案件,为维护市场经济秩序公平、公正,促进经济健康发展,起到了积极,有效的作用
2、项目背景为落实全国工商系统12315行政执法体系建设工作会议精神和国家工商行政管理总局制定的《关于大力推进12315行政执法体系建设工作___》,按照《金信工程总体技术方案》的要求,2012年7月,国家工商总局信息中心制定了新的《12315信息化网络技术方案》方案中明确指出了提出了对12315信息化网络的建设目标和任务,以及12315信息化网络作为实现12315行政执法体系手段的总体要求国家工商总局12315行政执法体系的建设要求,是要以提高消费__现代化水平为重点,加快12315信息化网络建设步伐并且结合“金信工程”建设,按照“统一标准、整合资源、扩大功能、优化流程、信息共享”的原则,扩大信息化网络功能,逐步实现消费者权益保护工作,通过12315信息化网络进行网上__、网上受理、网上查办、网上调度指挥、网上应急处置、网上动态监控、网上发布信息根据总局的建设要求,且在消费__日益复杂的情况下,必须建立一套快速、便捷、高效网络系统,才能满足社会及消费者的需求,才能尽快实现消费__现代化
3、__技术相关介绍1J__a语言简介J__a是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的J__a程序设计语言和J__a平台(即J__aSEJ__aEEJ__aME)的总称2J2EE简介即J__a2EnterpriseEdition,是建立在J__a2平台上的企业级应用的解决方案J2EE技术的基础便是J__a2平台,不但有J2SE平台的所有功能,同时还提供了对EJB,Servlet,JSP,XML等技术的全面支持,其最终目标是成为一个支持企业级应用__的体系结构,简化企业解决方案的__,部署和管理等复杂问题J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制3Oracle10g数据库Oracle数据库10g是第一个为企业级网络计算而设计的数据库Oracle10g数据库关键目标是降低管理开销、提高性能Oracle10g的增强有对高可用性的增强、新的Flashback能力、支持回滚更新操作;对安全性的增强,便于管理大量的用户;BI方面的增强,包括改进的SQL能力、分析功能、OLAP、数据挖掘的能力等;对非关系型数据存储的能力得到了改进;XML的能力4__工具及环境
1、硬件环境CPU Pentium1GHz以上处理器内存至少1GB或更高硬盘空间至少20GB
2、软件环境操作系统MicrosoftWindows7旗舰版__工具MyEclipse10设计工具MicrosoftOffi__Visio2007,PowerDesigner125服务器端运行环境
1、硬件环境CPU IntelCore
2.00GHz以上处理器内存至少2GB或更高磁盘工具至少40GB
2、软件环境操作系统MicrosoftWindows200364位数据库Oracle10g应用中间件Weblogic
94、需求分析1需求分析需求分析就是与用户充分沟通过程中理解用户需求,就软件功能与用户达成一致,定义项目范围,估计软件风险和评估项目代价,最后形成用户需求说明书,并由双方以书面形式签字确认需求分析阶段的工作,可以分为四个方面问题识别,分析与综合,制订规格说明,评审问题识别就是从系统角度来理解软件,确定对所__系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准这些需求包括功能需求做什么,性能需求要达到什么指标,环境需求如机型操作系统等,可靠性需求不发生故障的概率),安全保密需求,用户界面需求,资源使用需求软件运行是所需的内存,CPU等,软件成本消耗与__进度需求预先估计以后系统可能达到的目标分析与综合就是逐步细化所有的软件功能,找出系统各元素间的__,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分,最后,综合成系统的解决方案,给出要__的系统的详细逻辑模型制订规格说明书,即编制文档,形成软件需求规格说明书.评审是指对系统功能的正确性,完整性和清晰性,以及其它需求给予评价,评审通过才可进行下一阶段的工作,否则重新进行需求分析2需求说明书经过详细的需求调研及需求分析,最终形成软件需求规格说明书,需求规格说明书中应包含项目编写目的、项目背景、范围、定义、项目概述及用户具体需求下面列出本系统的具体需求12315系统主要分为系统首页、案件登记、案件分流、案件反馈、信息查询、报表统计、系统管理七个功能模块,系统管理下又分为单位管理、部门管理、用户管理、角色管理、公告管理,功能模块如图
4.1税收业务2管理12315系统案件反馈案件分流案件登记系统首页信息查询报表统计系统管理单位管理部门管理用户管理角色管理公告管理图
4.1系统功能模块
1、系统首页结合用户管理模块的权限功能,提供统一界面访问并根据不同用户的不同权限,提供个人待办、已办、提醒等功能对于待办工作,系统提示用户尽快__并提供查询,方便用户跟踪进度;此外还有公告通知功能
2、案件登记消费者可通过__、来信、来访、网络等方式进行__、申诉、举报,受理人员对消费者的__进行__答复,并将相关内容记录到系统中例如询问如何__证照,查询__类;申诉举报类型信息如果缺乏必要条件也转为__,而如果受理员不能答复的__,可以转到相应的处室进行处理对于受理的申诉、举报案件需转办处理
3、案件分流对于受理的申诉、举报案件,受理人员除了进行必要的登记、录入和解答外,还需要通过流程转办给相关部门进行处理并实时跟踪进度情况,及时反馈给公众,做到首位责任制度,提高__部门形象受理人员将来电、来信、来访、网络等信息进行分级分类后,按照不同的级别和案件线索的性质实施调度、指挥,实现纵向指挥调度,横向关联互动,三种类型信息处理,四级调度指挥等具体功能分流转交给下属单位、横向科室、协作机构进行处理对转办分流的信息,按信息所分级别类别相应标准,指定督办员可以进行不间断的监控跟踪督办具体__人员__完结后,将__情况登记保存,中心受理员获取工单__完结信息,对__情况进行审核,办结后将处理结果及时反馈给消费者
4、案件反馈申诉、___息可进行多次分流、交办,最终__人对具体申诉、___息进行处理,根据对申诉、举报情况的调查取证,完成处理过程,输入__结果最终__人处理完毕后,向上级主管部门上报
5、信息查询信息查询可针对案件登记、分流、反馈过程中的内容进行准确的定位,快速查出用户所__的案件包括记录的基本信息及__情况,在记录基本信息中主要包括信息提供方的基本信息例如姓名、____等;记录__情况中主要包括登记中、待分流、已办结等信息
6、报表统计报表统计可选择按固定时间段(选定报表年份后,可以指定报表频次,即月报、季报、半年报或年报),或任意时间段(起始日期,结束日期)系统生成指定的报表报表信息可导出Ex__l格式
7、系统管理系统管理需满足___对单位管理、部门管理、用户管理、角色管理、公告管理的日常维护工作
5、系统设计1系统用例图通过对系统的需求分析及功能模块的划分,可以确定系统的用例,如图
5.1#0;#0;#0;#0;#0;#0;系统管理员用例单位管理部门管理用户管理角色管理公告管理主任审批信息市局主任分局主任extends科长受理员extends消费者咨询申诉举报咨询人申诉人举报人extendsextendsextends受理咨询受理申诉受理举报市局受理员分局受理员工商所受理员extendsusesuses市局办案人员办案人员分局科长市局科长extendsextends案件分流案件退回提交审批申请分局办案人员工商所办案人extendsextendsextends案件反馈案件退回图
5.1系统用例图2处理流程图图
5.2为12315申诉举报案件业务处理流程图:�进程名称�职能��#0;#0;����文本框的高度和它所关联的边框线将随文本的增删而增减拖动侧边手柄可以更改注释宽度��阶段��12315申诉举报案件业务处理流程�办案人员受理员主任否是否送审办结�分流案件登记是处理登记退回重录案件审批是案件分流否案件办理输入处理输出科长图
5.212315申诉举报案件业务处理流程图3系统架构系统采用Struts+Spring+Hibernate集成__框架将系统从职责上分为四层表示层、业务逻辑层、数据持久层和域模块层架构模型如图
5.3UILayerStruts-MVCStrutsActonActionFormJspStruts-config.xmletcBusinessLayerSpringTransactionsPersistenceLayerHibernateDataSourceConnectionPoolHibernateSessionManagementBusinessServiceClassesQueryLanguageSupportandotherHibernateervicesServiceLocatorDAOClassesDomainModelBusinessObjects图
5.3架构模型
1、表示层在表示层中,首先通过JSP页面实现交互界面,负责传送请求Request和接收响应Response,然后Struts根据配置文件struts-config.xml将ActionServlet接收到的Request委派给相应的Action处理
2、业务层在业务层中,管理服务组件的SpringIoC容器负责向Action提供业务模型Model组件和该组件的协作对象数据处理DAO组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性
3、持久层在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果4数据库设计
1、创建数据库Oracle10g数据库__完成后,新建Oracle实例为orcl,并启动Oracle数据库服务,通过Oracle企业管理器工具(EM)建立数据库表空间为GS12315,表空间大小设置为4096MB设置Oracle相关优化参数,如SAG大小,pro__sses数量等
2、创建数据库用户使用Oracle企业管理器工具建立数据库用户名为gs12315并设置用户名__,设置该用户默认表空间为gs12315,分配用户角色为connectresour__
3、数据库表结构根据系统功能需求,制定的数据库表结构如下表5-1登记内容表djnrb名称代码数据类型是否允许为空是否主键是否外键登记编号reginoCHAR25否是否信息来源infooriCHAR2否否是接收方式incformCHAR1否否是登记部门regdepVARCHAR50否否否受理登记人accregperVARCHAR30否否否登记时间regtimeDATE否否否信息提供方类型revetypeCHAR2否否否姓名nameVARCHAR100否否否性别___CHAR1否否否年龄ageNUMERIC2是否否人员身份perideCHAR1是否否人员类别pertypeCHAR1是否否证件类型__rtypeCHAR1是否否证件号码__rnoVARCHAR40是否否残疾人标志handisignCHAR1是否否工作单位workunitVARCHAR100是否否信息提供方信息地址reveaddrVARCHAR100是否否信息提供方信息__话revetelVARCHAR80否否否涉及主体invoptVARCHAR100否否否所在行业类别ubindtypeCHAR3否否否地址addrVARCHAR100否否否____telVARCHAR80是否否涉及客体类别obtypeCHAR8是否否商品进口标志merimpsignCHAR1是否否商品名称mdsenameVARCHAR100是否否品牌名称brandnameVARCHAR100是否否型号规格typespfVARCHAR100是否否数量quanNUMERIC8是否否计量单位meaunitCHAR3是否否涉及金额in___mNUMERIC186是否否信息类别infotypeCHAR1是否否__问题类别conlqutypeCHAR1是否否申诉举报基本问题applbasqueCHAR6否否否申诉举报具体问题applidiqueVARCHAR4000否否否事发地所在行政区划accs__districtCHAR6否否否事发地accs__VARCHAR100否否否事发时间acctimeDATE否否否关键字keywordVARCHAR100否否否人身伤害类型perinjtypeCHAR1是否否受害人数victimnumNUMERIC8是否否消费安全__类型consecocctypeCHAR2是否否案值casevalNUMERIC186是否否经济损失值ecolovalNUMERIC186是否否减产亩数redareaNUMERIC8是否否绝产亩数hopareaNUMERIC8是否否__范围conlrangeVARCHAR6是否否登记部门编号djbmVARCHAR13否否是处理部门编码clbmVARCHAR13否否是表5-2流转明细表lzmxb名称代码数据类型是否允许为空是否主键是否外键序号idVARCHAR50否是否记录编号reginoVARCHAR25否否是流转类型distwhiVARCHAR3否否是分流登记人distregperVARCHAR30否否是分流(转出)时间outdateDATE否否否分流(转出)部门outdeptVARCHAR50否否是转入部门recdeptVARCHAR50否否是附言memoVARCHAR4000否否否表5-3申诉行政调解案件表(xztjajb)名称代码数据类型是否允许为空是否主键是否外键登记编号reginoVARCHAR50否是是受理类型acctypeCHAR2否否否应急处置进展状态headstateCHAR2是否否__部门handdepVARCHAR100是否否协助单位类型aidunittypeCHAR2是否否经办人tranVARCHAR30是否否反馈登记人feeregperVARCHAR30是否否涉案客体类别invobtypeCHAR8是否否商品进口标志merimpsignCHAR1是否否生产地所在行政区划yiedistrictCHAR6是否否生产地yieldlyVARCHAR100是否否销售地所在行政区划venspdistrictCHAR6是否否销售地venspVARCHAR100是否否商品名称mdsenameVARCHAR100是否否品牌名称brandnameVARCHAR100是否否型号规格typespfVARCHAR100是否否数量quanNUMERIC8是否否计量单位meaunitCHAR3是否否涉案主体invptVARCHAR100是否否注册号regnoCHAR15是否否主体类别pttypeCHAR2是否否企业机构类型enttypeCHAR4是否否所在行业类别ubindtypeCHAR3是否否市场名称__rnameVARCHAR100是否否地址addrVARCHAR100是否否____telVARCHAR80是否否调解结束日期intenddateDATE是否否调解结果intresuleCHAR1是否否侵权类型tortypeCHAR2是否否未履行义务defoblCHAR2是否否欺诈标志cheatsignCHAR1是否否争议金额disamNUMERIC186是否否挽回经济损失redecolosNUMERIC186是否否精神赔偿金额spiameamNUMERIC186是否否加倍赔偿金额douameamNUMERIC186是否否行政调解书文号intnoVARCHAR50是否否调解反馈内容tjnrVARCHAR4000否否否时间戳lastmodifytimeDATE是否否表5-4举报行政处罚案件表(xzcfajb)名称代码数据类型是否允许为空是否主键是否外键登记编号reginoVARCHAR50否是是受理类型acctypeCHAR2否否否应急处置进展状态headstateCHAR2是否否__部门handdepVARCHAR100是否否协助单位类型aidunittypeCHAR2是否否经办人tranVARCHAR30是否否反馈登记人feeregperVARCHAR30是否否涉案客体类别invobtypeCHAR8是否否商品进口标志merimpsignCHAR1是否否生产地所在行政区划yiedistrictCHAR6是否否生产地yieldlyVARCHAR100是否否销售地所在行政区划venspdistrictCHAR6是否否销售地venspVARCHAR100是否否商品名称mdsenameVARCHAR100是否否品牌名称brandnameVARCHAR100是否否型号规格typespfVARCHAR100是否否数量quanNUMERIC8是否否计量单位meaunitCHAR3是否否涉案主体invptVARCHAR100是否否注册号regnoCHAR15是否否主体类别pttypeCHAR2是否否企业机构类型enttypeCHAR4是否否所在行业类别ubindtypeCHAR3是否否市场名称__rnameVARCHAR100是否否地址addrVARCHAR100是否否____telVARCHAR30是否否案件编号casenoCHAR19是否否适用程序apppro__dureCHAR1是否否立案日期casefidateDATE是否否结案日期endcasdateDATE是否否案值casevalNUMERIC186是否否案发地所在行政区划cases__districtCHAR6是否否案发地casespotVARCHAR100是否否违法所得illegincomeNUMERIC186是否否违法行为种类illegacttypeVARCHAR6是否否定性依据quabasisVARCHAR200是否否处罚依据penbasisVARCHAR200是否否处罚种类pentypeCHAR2是否否处罚结果penresultCHAR2是否否罚款金额penamNUMERIC186是否否没收金额fo___mNUMERIC186是否否变价金额apprcuramNUMERIC186是否否行政强制措施类型commeatypeCHAR1是否否处罚决定书文号pendecnoVARCHAR50是否否消费安全__类型consecocctypeCHAR2是否否农业损失信息_减产亩数redareaNUMERIC8是否否农业损失信息_绝产亩数hopareaNUMERIC8是否否案件性质casechrCHAR1是否否案件跨地域类型spzontypeCHAR1是否否跨地域数量spzonquanNUMERIC8是否否经济损失值ecolovalNUMERIC186是否否牺牲人数sacnumNUMERIC8是否否受伤人数injnumNUMERIC8是否否人身伤害类型perinjtypeCHAR1是否否受害人数victimnumNUMERIC8是否否销案理由clocasereaCHARACTER1是否否销案日期clocasedateDATE是否否时间戳lastmodifytimeDATE是否否案件反馈内容ajnrVARCHAR2000否否否表5-5单位信息表(___unit)名称代码数据类型是否允许为空是否主键是否外键序号idVARCHAR250否是否机构名称unitnameVARCHAR240否否否行政区划districtVARCHAR210否否否机构级别序号unitgradeidVARCHAR250否否否有效标志activeflagCHAR1否否否说明re__rkVARCHAR2100是否否表5-6部门信息表(___dept)名称代码数据类型是否允许为空是否主键是否外键序号idVARCHAR250否是否机构序号unitidVARCHAR250否否是部门类型序号depttypeidVARCHAR250否否否部门名称deptnameVARCHAR2100否否否部门简称deptjcVARCHAR250是否否邮编postCHAR6是否否__telVARCHAR220是否否说明re__rkVARCHAR2100是否否表5-7用户信息表(___user)名称代码数据类型是否允许为空是否主键是否外键序号idVARCHAR250否是否部门序号deptidVARCHAR250否否是用户名称usernameVARCHAR230否否否__userpwdVARCHAR250否否否职务级别序号dutylevelidVARCHAR250是否否办公室__offi__telVARCHAR220是否否手机mobileVARCHAR220是否否家庭住址homeaddrVARCHAR2100是否否性别___CHAR1是否否上岗时间hiredateDATE是否否离职时间le__edateDATE是否否锁定状态islockedCHAR1否否否说明re__rkVARCHAR2100是否否表5-8角色信息表(___role)名称代码数据类型是否允许为空是否主键是否外键序号idVARCHAR250否是否角色名称rolenameVARCHAR2100否否否有效标志activeflagCHAR1否否否说明re__rkVARCHAR2100是否否表5-9权限信息表(___priv)名称代码数据类型是否允许为空是否主键是否外键序号idVARCHAR250否是否权限名称privchnameVARCHAR2100否是否权限分类序号privtypeidVARCHAR250否是否有效标志activeflagCHAR1否是否说明re__rkVARCHAR2100是是否表5-10角色权限信息表___role_priv名称代码数据类型是否允许为空是否主键是否外键权限序号prividVARCHAR250否是是角色序号roleidVARCHAR250否是是说明re__rkVARCHAR2100是否否表5-11用户角色信息表___user_role名称代码数据类型是否允许为空是否主键是否外键角色序号roleidVARCHAR50否是是用户序号useridVARCHAR50否是是说明re__rkVARCHAR100是否否表5-12信息类别代码表bm_xxlbdm名称代码数据类型是否允许为空是否主键是否外键编码codeCHAR1否是否内容contentVARCHAR80否否否标志flagCHAR1否否否说明re__rkVARCHAR100是否否表5-13信息来源代码表bm_xxlydm名称代码数据类型是否允许为空是否主键是否外键编码codeCHAR2否是否内容contentVARCHAR80否否否标志flagCHAR1否否否说明re__rkVARCHAR100是否否表5-14接收方式代码表bm_jsfsdm名称代码数据类型是否允许为空是否主键是否外键编码codeCHAR2否是否内容contentVARCHAR80否否否标志flagCHAR1否否否说明re__rkVARCHAR100是否否
4、数据库表间关系根据实体间__和实体与数据表的对应关系,可导出数据库表间关系,如图
5.4图
5.4数据库表间关系
5、数据库备份策略数据库备份使用oracle备份工具R__N,先建立R__N备份库及备份恢复目录,对数据库进行增量备份,备份时间定在每天晚上11点5公共模块设计
1、__信息在WEB应用程序中建立i__ges文件夹,用于存放系统所使用到的__,如index.jpglogo.jpg等
2、公用页面在WEB应用程序中建立common文件夹,用于存放系统所使用到的公共jsp页面,如公用错误信息页面(error.jsp)消息提示页面(message.jsp)欢迎页面(welcome.jsp)树型目录页面(tree.jsp)等
3、CSS样式在WEB应用程序中建立css文件夹,用于存放系统所使用到的css样式表,如全局样式表global.css页面布局样式表layout.css表格样式表table.css提示工具样式表tool-tip.css其他样式表other.css欢迎页面样式表welcome.css并将这些样式文件引入到css.css文件中,在jsp页面中统一调用css.css文件引入样式方式如下@importurlglobal.css;@importurllayout.css;@importurltable.css;@importurltool-tip.css;@importurlother.css;@importurlwelcome.css;
4、公用类该包中包括日期处理类DateFor__t.j__a__加密类EncryptTool.j__a字符串处理类(StringFor__t.j__a),常量类(SysConstant.j__a)等
6、系统界面和功能实现根据对用户需求详细地分析,已对系统进行系统设计,下面针对系统功能实现进行描述1系统登录本系统是B/S架构,通过浏览器访问系统,在浏览器地址栏中输入系统访问地址后,进入系统登录页面,只有登录系统后才能使用系统功能系统登录页面如图
6.1所示图
6.1系统登录页面系统登录窗口中提供用户名和__两个输入框,用户名和__为必填项,并有一个登录按钮,__“登录”按钮后,在数据库中对用户名和__是否正确进行验证,验证通过则读取用户信息存放到用户VO对象中,并将该用户VO对象保存到session对象中,然后进入系统首页,不通过则提示用户用户名或__输入错误,需重新输入//用户名和__非空校验alert请完整填写用户名和__!;return;alert请填写__!;return;alert请填写用户名!;return;}数据库中保存的用户__采用MD5方式进行加密,代码如下//定义静态方法对__字符串进行MD5加密publicstaticStringpasswdEncryptStringin{try{//生成实现MD5摘要算法的MessageDigest对象MessageDigestalgorithm=MessageDigest.getInstan__MD5;//使用__字符串的字节更新摘要algorithm.updatein.getBytes;//通过执行诸如填充之类的最终操作完成哈希计算byte[]digest=algorithm.digest;//将二进制转字符串returnbyte2hexdigest;}catchNoSuchAlgorithmEx__ptionalge{//异常捕获//打印输出异常信息“数据加密失败:”+alge;}//方法调用异常后返回空值returnnull;}用户校验成功后返回用户VO对象,如下publicVUserinfoget__UserByCodePWDStringusercodeStringpwdthrowsEx__ption{//定义用户对象VO变量VUserinfosu=null;//定义查询参数List对象变量Listlist=newArrayList;//定义查询结果List对象变量Listls=null;try{//设置SQL语句用户名参数list.addusercode;//设置SQL语句__参数(用户名和__字符串相加并加密后作//为最终__)list.addpasswdEncryptusercodepwd;//根据用户名和__查询用户信息ls=iDAO.findfromVUserinfofwheref.userid=andf.userpwd=list;//判断是否查询到用户信息,如未查到,返回空用户VO对象ifls==null||ls!=nullls.size==0returnsu;}catchEx__ptione{//异常捕获//打印异常信息到log文件中logger.errore.toString;//抛出异常信息throwe;}//返回用户VO对象returnVUserinfols.get0;}将用户对象信息保存到session对象中session.setAttributeSysConstant.SESSION_USERINFOuserinfo;2系统首页用户名和__验证通过后,进入系统首页,如图
6.2所示图
6.2系统首页系统首页包括
1、系统菜单系统菜单有系统首页、案件登记、案件分流、案件反馈、报表统计、信息查询及系统管理,系统管理下还包括单位管理、部门管理、人员管理、角色管理、公告管理
2、修改__用户登录后,可在首页中修改__点“修改__”后弹出修改__页面,页面中显示三个输入框,分别为原__、新__、确认__原__必须输入正确且新__与确认__需一致,否则不能进行__修改部分代码如下//判断新__和确认__是否一致ymPrompt.alert确认__与新__,两次输入不一致;return;}
3、退出用户登录后,可通过“退出”按钮注销登录信息并返回登录页面用户退出部分代码如下publicActionForwardlogoutAction__pping__ppingActionFormformHttpServletRequestrequestHttpServletResponseresponsethrowsEx__ption{//定义错误页面转向变量String___=error;try{//获取session对象HttpSessionss=request.getSession;//判断session是否为空ifss!=null{//删除绑定在session对象中的用户信息ss.removeAttributeSysConstant.SESSION_USERINFO;//设置session无效ss.invalidate;}//定义转向登录页面变量___=logon;}catchThrowablee{//异常捕获//打印异常信息到log文件中logger.errore.getMessage;//设置错误信息输出值ErrorUtil.s__eErrorrequest系统注销出错e.getMessage;}//根据转向变量值返回页面return__pping.findForward___;}
4、公告通知在系统首页可查看通过后台发布的公告通知首页显示公告发布的日期、发布部门及公告标题信息如当天发布的信息,在公告信息前用“new”图标标注,表明其为新的公告信息
5、待办事宜用户登录成功后,获取该用户的待办事项,提示用户所需完成的工作,用户可__提示信息链接进入具体的待办事项操作页面3案件登记在打开案件登记窗口时,先进入案件登记初始时化方法,在初始化方法中设置案件登记中的一些默认值,如设置__级别为“一般__”,信息提供方姓名为“匿名”人员类别默认为“其他”部分代码如下//__级别默认为一般__registForm.setCa___z3;//信息提供方默认为匿名registForm.setName匿名;//人员类别默认为其他registForm.setPertype9;进入案件登记页面,如图
6.3图
6.3案件登记页面对于必填项输入框使用浅红色及红“*”星号进行区分,由于案件登记页面录入项较多,对于部分非必填项隐藏起来,可__登记栏上的“更多信息“显示隐藏项对部分录入项提供快速录入按钮,如“品牌名称”、“关键字”,__“无”按钮时可将值“无”自动添加到输入框中,方便操作人员快速录入信息案件保存时根据不同类型(__、申诉、举报)判断数据项为必填项,比对数据项的有效性进行校验提供案件保存按钮,点“保存”,进入后台Action中,对数据进行处理并将数据存储到数据库中,保存成功或失败进入成功或失败的提示页面以提示用户部分代码如下//校验信息提供方姓名/名称校验errMsg=errMsg+Validatename姓名/名称NotEmpty;//判断校验值信息是否为空iferrMsg!={//不为空则提示错误信息并返回ymPrompt.alerterrMsgnullnull信息提示null;return;}//案值信息校验//js获取案值varcaseval=document.getElementByIdcaseval.value;caseval=caseval.repla__/^\s+|\s+$/g;//去除空格正则表达式//判断案值是否为为空并是否是数字ifcaseval!=!i__oneycaseval{//错误提示并返回ymPrompt.alert‘案值’格式不正确,请重新输入!;return;}//保存信息到数据库publicStrings__eDjnrbDjnrbo__throwsEx__ption{//定义序列对象变量Serializableid=null;try{//调用Hibernate方法保存对象并返回序列ID号id=super.getZrarTemplate.s__eo__;}catchEx__ptione{//打印异常信息到log文件中logger.error“保存登记信息失败”+e;//抛出异常throwe;}//返回序列ID值returnid.toString;}已保存成功的案件,可查看案件登记信息,且可修改案件登记信息,如图
6.4图
6.4案件登记信息页面部分代码如下//查看案件登记信息,根据ID取登记信息publicDjnrbgetDjnrbByIdStringidthrowsEx__ption{//定义登记信息对象变量Djnrbdjnrb=null;try{//根据ID值取登记信息对象djnrb=Djnrbsuper.getZrarTemplate.getDjnrb.classid;}catchEx__ptione{//异常捕获//打印异常信息到log文件中logger.error“查看案件登记信息”+e;//抛出异常throwe;}//返回登记信息对象returndjnrb;}//修改案件登记信息publicvoidupdateDjnrbDjnrbo__throwsEx__ption{try{//根据登记信息对象修改信息super.getZrarTemplate.updateo__;}catchEx__ptione{//捕获异常//打印异常信息到log文件中logger.error“修改案件登记信息:”+e;//抛出异常throwe;}}4案件分流进入案件分流页面时,调用listWaitDist方法,默认查询出需要分流的案件,以列表显示,列表页面还提供登记开始时间、登记结束时间、案件类型、登记编号等查询条件,可根据这些查询条件查询案件信息,列表页面中每条案件提供分流和退回操作,调用distView方法进入分流操作页面,调用distBackView方法进入退回操作页面在分流操作页面中,可根据分流情况选择不同的接收部门,如下级或横线单位,__“确定”按钮后保存分流操作信息在分流操作页面中,“退回原因”和“退回意见”为必填项,__“退回重录”按钮后,将案件退回到受理员重新录入案件如图所示图
6.5分流列表页面图
6.6分流操作页面图
6.7分流退回页面部分实现代码如下publicActionForwardlistWaitDistAction__pping__ppingActionFormformHttpServletRequestrequestHttpServletResponseresponsethrowsEx__ption{//定义转向页面变量Stringforward=list;//定义查询结果分页Page对象变量Pagepage=null;try{//校验用户权限Stringrtninfo=checkRightSysConstant.PRIV_DISTrequest;//判断是否有用户权限if!RTN_SUC__SS.equalsrtninfo{//无权限则返回错误页面return__pping.findForwardmsg;}//获取用户信息VUserinfouser=getUserrequest;//定义分流form对象DistFormdistForm=DistFormform;//通过SpringIoc生成分流BO对象IDistBOiDistBO=IDistBOgetBeanSysConstant.ACTION_DIST;//查询分流信息并返回分页Page对象page=iDistBO.listWaitDistdistFormrequest;//将分流Page对象保存到request对象中request.setAttributepagepage;}catchEx__ptione{//捕获异常//设置分流错误信息ErrorUtil.s__eErrorrequest获取待分流记录列表失败!e.getMessage;//定义错误信息转向页面变量forward=error;}//根据forward值跳转到相应页面return__pping.findForwardforward;}5案件反馈进入案件分流页面时,调用listFeedback方法,默认查询出需要反馈的案件,以列表显示,列表页面还提供登记开始时间、登记结束时间、信息类型、登记编号等查询条件,可根据这些查询条件查询需要反馈的案件信息,列表页面中每条案件后有“结案反馈”操作,由于申诉、举报案件反馈填写的内容不一样,因此点“结案操作”调用不同的方法进入不同的反馈页面,申诉调用doTj方法,举报调用doCf方法图
6.8申诉案件反馈页面图
6.9举报案件反馈页面部分实现代码如下//申诉反馈信息保存publicvoids__eXztjajbXztjajbo__throwsEx__ption{//调用封装的Hibernate方法将申诉反馈信息对象保存到数据库中super.getZrarTemplate.s__eo__;}//举报反馈信息保存publicvoids__eXzcfajbXzcfajbo__throwsEx__ption{//调用封装的Hibernate方法将举报反馈信息对象保存到数据库中super.getZrarTemplate.s__eo__;}6信息查询信息查询页面采用frameset网页结构,分为上下两个frame页面,上面frame名为topFrame,页面为查询条件,下面frame名为__inFrame,页面为查询结果信息在查询条件页面中,__“查询”按钮,调用listVdjnrb方法查询数据信息查询页面如图
6.10图
6.10信息查询页面部分实现代码如下//信息查询方法publicPagefindPageStringsqlListlistintpageNumintpageSizethrowsEx__ption{//定义查询结果分页Page对象变量Pagepage=null;、//定义SQL语句字符串变量StringBufferhql=newStringBufferfromVDjnrbdj;//拼接SQL条件字符串hql.appendsql;//调用封装的Hibernate方法查询登记信息并返回分页Page对象page=getZrarTemplate.findhql.toStringlist.toArraypageNumpageSize;//返回查询结果page对象returnpage;}7报表统计12315报表主要分为热点排行和部门数据,热点排行数据主要针对商标/品牌、消费类型、消费性质的在某一段时间内的数据排行部门数据只要针对__过程中各部门案件的__情况的统计报表统计提供统计时间、排行数、消费类型等统计时间报表统计使用__ll表报插件生成报表,该工具可进行直接打印报表信息,并可导出Ex__l文件格式建立公用的__ll插件__llWe__sp页面,其他页面可通过include包含方式引入该页面,__llWeb.jsp内容如下__NTER!—引入__ll控件--O__ECTid=D__llWeb1codebase=__llweb
5.cab#Version=1029classid=clsid:3F166327-8030-4881-8BD2-EA25350E574Aheight=85%width=70%align=middle!—设置__ll对象相关参数值--PARAMname=_Versionvalue=65536PARAMname=_ExtentXvalue=30__7PARAMname=_ExtentYvalue=____3PARAMname=_StockPropsvalue=0/O__ECT/__NTERSCRIPTlanguage=J__aScriptvarpath;varreturnI;//path是模版存放在应用发布中的路径path=%=path%;//returnI用来得到方法的返回值,//如果打开文件成功返回1,否则返回0returnI=D__llWeb
1.OpenFilepath;//设置__ll控件对象相关值D__llWeb
1.ShowGridLine10;D__llWeb
1.ShowSheetLabel10;D__llWeb
1.ShowHScroll10;D__llWeb
1.ShowVScroll10;D__llWeb
1.ShowTopLabel10;D__llWeb
1.ShowSideLabel10;D__llWeb
1.Border=1;SCRIPTlanguage=J__aScript//打开打印预览对话框functionprintpriew{D__llWeb
1.PrintSetOrient%=orient%;D__llWeb
1.PrintPreview1D__llWeb
1.GetCurSheet;}//打开打印设置对话框functionprintdia{D__llWeb
1.PrintPageSetup;}//表页的打印functionprint{D__llWeb
1.PrintSetOrient%=orient%;D__llWeb
1.PrintSheet1D__llWeb
1.GetCurSheet;}//将当前表格保存为华表格式的文件,如果保存文件成功//返回值等于1;如果保存文件失败,返回值小于等于0functionex__ls__e{varreturnI;returnI=D__llWeb
1.S__eFile;}/SCRIPT报表统计页面如图
6.11图
6.11报表统计页面8系统管理系统管理包括单位管理、部门管理、人员管理、角色管理、公告发布
1、单位管理进入单位管理页面,默认调用list方法查询出所有单位信息,以列表页面显示,在列表页面提供单位名称查询项,页面右上方提供查询、重置、新增按钮,列表数据中每行数据提供修改和删除操作点“新增”按钮,调用newUnit方法,初始“机构级别”值,在页面以下拉框显示,进入单位管理新增页面填写相关数据值后可点“保存”按钮保存信息,在保存前判断该单位是否存在点“修改”图标,调用view方法,从数据库中根据单位编号ID读取单位信息,并显示在修改页面中点“保存”按钮后根据页面值修改单位信息点“删除”图标,调用del方法,根据单位ID删除单位信息图
8.1单位列表页面图
8.2单位新增页面图
8.3单位修改页面单位管理部分实现代码://查询单位列表方法publicActionForwardlistAction__pping__ppingActionFormformHttpServletRequestrequestHttpServletResponseresponse{//定义转向页面变量Stringdispatch=“__in”;try{//判断权限Stringrtninfo=checkRightSysConstant.PRIV_UNITrequest;//判断用户权限if!RTN_SUC__SS.equalsrtninfo{//用户无权限返回错误消息页面return__pping.findForwardmsg;}//定义单位form变量__UnitForm__UnitForm=__UnitFormform;//通过SpringIoc生成单位BO对象I__UnitBOi__UnitBO=I__UnitBOBeanFac.getBean__UnitBO;//查询单位信息并返回分页Page对象Pagepage=i__UnitBO.list__Unit__UnitForm;//将单位Page对象保存到request对象中request.setAttributepagepage;}catchEx__ptione{//捕获异常//打印异常信息到log文件中logger.error“查询单位信息失败”+e;//定义错误信息转向页面变量dispatch=error;}//根据dispatch值跳转到相应页面return__pping.findForwarddispatch;}//新增单位初始化新增页面publicActionForwardnewUnitAction__pping__ppingActionFormformHttpServletRequestrequestHttpServletResponseresponse{//定义转向页面变量Stringdispatch=add;try{//定义单位form变量__UnitForm__UnitForm=__UnitFormform;//通过SpringIoc生成单位BO对象I__UnitBOi__UnitBO=I__UnitBOBeanFac.getBean__UnitBO;//查询单位信息并返回分页Page对象Pagepage=i__UnitBO.list__Unit__UnitForm;//查询单位信息并返回分页Page对象request.setAttributepagepage;//设置单位级别列表信息request.setAttributeunitgradeidlist__keOption.__keSelectOptionthis.getServlet.getServletContext___bm_unitgrade;}catchEx__ptione{//捕获异常//打印异常信息到log文件中logger.errore;//定义错误信息转向页面变量dispatch=error;}//根据dispatch值跳转到相应页面return__pping.findForwarddispatch;}
2、部门管理部门管理页面采用左右frameset页面框架,左边为单位目录树,右边为所选单位下的所有部门信息,单位和部门关系为一对多关系,即一个单位下有多个部门如__左边树型目录的某个单位时,默认查询该单位下所有部门并显示在右边frame页面中以列表页面显示部门管理中提供查询、新增、修改、删除功能图
8.4部门管理页面部门管理部分实现代码://根据单位ID查询部门信息publicActionForwardlist__DeptAction__pping__ppingActionFormformHttpServletRequestrequestHttpServletResponseresponsethrowsEx__ption{//定义转向页面变量Stringdispatch=list;try{//定义部门form对象__DeptForm__DeptForm=__DeptFormform;//获取单位ID参数值Stringunitid=request.getParameterunitid//通过SpringIoc生成部门BO对象I__DeptBO__Deptbo=I__DeptBOBeanFac.getBean__DeptBO;//将单位ID值设置到request对象中request.setAttributeunitidunitid;//查询部门信息并返回分页Page对象Pagepage=__Deptbo.list__Dept__DeptForm;//将部门Page对象保存到request对象中request.setAttributepagepage;}catchEx__ptione{//捕获异常//打印异常信息到log文件中logger.error“查询部门信息失败”+e.toString;//定义错误信息转向页面变量dispatch=error;}//根据dispatch值跳转到相应页面return__pping.findForwarddispatch;}//新增部门信息publicActionForwardadd__DeptAction__pping__ppingActionFormformHttpServletRequestrequestHttpServletResponseresponsethrowsEx__ption{//定义转向页面变量Stringdispatch=“add”;//定义消息提示变量StringresultMessage=null;try{//定义部门form对象__DeptForm__DeptForm=__DeptFormform;//通过SpringIoc生成部门BO对象I__DeptBO__Deptbo=I__DeptBOBeanFac.getBean__DeptBO;//___门code是否有重复Listlist=__Deptbo.listCode__Dept__DeptForm.getId;//如不存在,则新增否则提示用户部门已存在iflist.size==0{__Deptbo.add__Dept__DeptFormbmxz;}else{//通过SpringIoc单位部门BO对象I__UnitBO__Unit=I__UnitBOBeanFac.getBean__UnitBO;display=add;resultMessage=已有相同编号的部门存在!;//设置消息提示信息到request对象中request.setAttributeresultMessageresultMessage;//设置单位ID到request对象中request.setAttributeunitid__DeptForm.getId.substring09;//设置单位名称到request对象中request.setAttributeunitname__Unit.findUnitNamerequest.getParameterunitid;}}catchEx__ptione{//捕获异常//打印异常信息到log文件中logger.error“新增部门信息失败”+e.toString;}//根据dispatch值跳转到相应页面return__pping.findForwarddispatch;}
3、人员管理人员管理与部门管理类似,也是采用左右frameset页面框架,左边为单位目录树,右边为所选单位下的所有人员信息人员、部门、单位属于从属关系一个人员属于某个部门下,该部门又属于某个单位人员管理中提供查询、新增、修改、删除、锁定、解锁功能图
8.5人员管理页面部门管理部分实现代码://查询人员列表信息publicActionForwardlistUserAction__pping__ppingActionFormformHttpServletRequestrequestHttpServletResponseresponseThrowsEx__ption{try{//定义用户form对象__UserForm__UserForm=__UserFormform;//通过SpringIoc生成用户BO对象I__UserBOi__UserBO=I__UserBOgetBeanSysConstant.ACTION___USER;//查询用户信息并返回分页Page对象Pagepage=i__UserBO.listUser__UserForm;//将用户Page对象保存到request对象中request.setAttributepagepage;}catchEx__ptione{//捕获异常//打印异常信息到log文件中logger.error“查询人员列表信息失败”+e.toString;}//返回到列表页面return__pping.findForward__in;}
4、角色管理角色管理是针对用户权限的,即一个角色下可分配多个权限,角色和权限为一对多的关系角色管理下包括新增、查询、修改、删除功能且删除提供批量删除操作图
8.6角色管理页面角色管理部分实现代码://角色列表信息查询publicActionForwardlistRoleAction__pping__ppingActionFormformHttpServletRequestrequestHttpServletResponseresponsethrowsEx__ption{try{//校验用户权限Stringrtninfo=checkRightSysConstant.PRIV_ROLErequest;//判断是否有用户权限if!RTN_SUC__SS.equalsrtninfo{//无权限则返回错误页面return__pping.findForwardmsg;}//定义角色form对象__RoleForm__RoleForm=__RoleFormform;//通过SpringIoc生成角__O对象I__RoleBOi__RoleBO=I__RoleBOgetBean__RoleBO;//查询角色信息并返回分页Page对象Pagepage=i__RoleBO.listRole__RoleForm;//将角色Page对象保存到request对象中request.setAttributepagepage;}catchEx__ptione{//捕获异常//打印异常信息到log文件中logger.error“查询角色信息失败”+e.toString;}//返回到列表页面return__pping.findForward__in;}//新增角色信息publicActionForwardaddRoleAction__pping__ppingActionFormformHttpServletRequestrequestHttpServletResponseresponsethrowsEx__ption{//定义消息提示变量StringresultMessage=null;//定义转向页面变量Stringdispatch=list;try{//定义角色form对象__RoleForm__RoleForm=__RoleFormform;//通过SpringIoc生成角__O对象I__RoleBOi__RoleBO=I__RoleBOgetBean__RoleBO;//根据角色ID或角色名判断是否有重复ifi__RoleBO.checkRoleByCodeAndName__RoleForm0{//消息提示变量赋值resultMessage=系统里已有相同的编号或名称;//转向页面标记变量赋值dispatch=new;//查询所有权限信息Listprivlist=i__RoleBO.listPriv;//将权限信息设置到request对象中request.setAttributeprivlistprivlist;}else{//新增角色信息到数据库中i__RoleBO.addRole__RoleForm;//消息提示变量赋值resultMessage=保存成功;}//设置消息提示变量值到request对象中request.setAttributeresultMessageresultMessage;}catchEx__ptione{//捕获异常打印异常信息到log文件中logger.error“保存角色信息失败”+e.toString;//消息提示变量赋值resultMessage=保存失败;//设置转向页面标记为错误页面dispatch=error;}//根据dispatch值跳转到相应页面return__pping.findForwarddispatch;}
5、公告管理公告管理主要是通过本系统发送相关通知,发布的公告在系统首页中显示公告管理下包括新增、查询、修改、删除功能图
8.7公告管理页面公告管理部分实现代码://公告列表信息查询publicActionForwardlistAction__pping__ppingActionFormformHttpServletRequestrequestHttpServletResponseresponsethrowsEx__ption{try{//校验用户权限Stringrtninfo=checkRightSysConstant.PRIV_INFOrequest;//判断是否有用户权限if!RTN_SUC__SS.equalsrtninfo{//无权限则返回错误页面return__pping.findForwardmsg;}//定义公告信息form对象InfoareaForminfoareaForm=InfoareaFormform;//通过SpringIoc生成公告信息BO对象IInfoareaBOinfoareabo=IInfoareaBOBeanFac.getBeaninfoareaBO;//查询公告信息并返回分页Page对象Pagepage=infoareabo.listInfoareainfoareaForm;//将公告信息Page对象保存到request对象中request.setAttributepagepage;}catchEx__ptione{//捕获异常//打印异常信息到log文件中logger.error“查询公告信息失败”+e;}//跳转到角色管理首页面return__pping.findForward__in;}//新增公告信息publicActionForwardaddAction__pping__ppingActionFormform,HttpServletRequestrequestHttpServletResponseresponsethrowsEx__ption{try{//定义公告信息form对象InfoareaForminfoareaForm=InfoareaFormform;//通过SpringIoc生成公告信息BO对象IInfoareaBOinfoareabo=IInfoareaBOBeanFac.getBeaninfoareaBO;//新增公告信息到数据库infoareabo.addInfoareainfoareaFormrequest;}catchEx__ptione{//捕获异常//打印异常信息到log文件中logger.error“保存公告信息失败”+e;}//跳转到角色管理首页面return__pping.findForward__in;}总结本文详尽的介绍了工商12315申诉___息管理系统的__技术、系统需求分析、系统设计及系统功能实现,并且简单地的介绍了系统__环境
1、系统特色与优点本系统__前期对系统需求进行详细的调研与分析,紧紧把控用户需求,并在满足用户需求的基础上,对系统可操作性上也尽量方便用户,界面由专业美工人员设计,界面新颖、美观,使人感到亲切系统使用J__a__语言,可跨平台运行,可部署在Windows、Linux或者Unix环境上在__技术上使用框架式结构__,大大提高了__人员__效率
2、系统的不足与改进方案本系统只是工商12315中心部门的一个子系统,现处理业务比较单一,但工商部门涉及到的业务还比较多,如注册登记、案件执法、企业信用等,本系统与这些业务系统还不能进行数据共享,在这一点上还有待系统升级,更新出更好、更新的版本____目录
[1]刘湛《J2EE全面简介》2001年7月;
[2]CayS.Horst__nnGaryCornell《J__a核心技术卷I基础知识(第八版)》机械工业出版社2008年5月;
[3]李兴华、王月清《J__aWeb__实战经典基础篇》 清华大学出版社2010年08月;
[4]俞琰、郑阿奇《J2EE应用实践教程》电子工业出版社2009年1月
[5]陈雄华《Spring
3.x企业应用__实战》电子工业出版社2012年2月;
[6]孙卫琴《精通Hibernate:J__a对象持久化技术详解》电子工业出版社2010年2月
[7]林慧、龚涛《Oracle10g入门与实践》中国铁道工业出版社2005年11月
[8]RichardJ.Niemiec《OracleDatabase10g性能调整与优化》清华大学出版社2009年1月
[9]福勒__rtinFowler、潘加宇:《UML精粹:标准对象建模语言简明指南第3版 》电子工业出版社2012年6月
[10]__《轻量级J__aEE企业应用实战第3版:Struts2+Spring3+Hibernate整合__》电子工业出版社2012年4月
[11]周志明《深入理解J__a虚拟机:JVM高级特性与最佳实践》 机械工业出版社2011年6月。