1. 引言
随着计算机科学与技术的快速发展及应用,企业对于质量管理信息化的需求日益增长。当前,许多企业质量管理借助现有的办公系统比如OA系统,进行质量问题流程的处理,减少了员工的负担,提高了工作效率,但是这种质量管理方式,仅仅是手工管理方式的计算机化,没有实现结构化数据管理,不能实现自动生成关键数据的统计分析,数据利用及信息共享程度不高,基于数据决策功能均很薄弱,难于对质量进行事前预防,只能对质量问题进行事后管理和分析,很难积累质量问题处理经验库,实现质量问题的持续改进。为了更系统、更及时、更高程度上提高企业产品质量,加快质量问题的快速定位、跟踪处理的每个环节,有必要实施独立的质量信息管理系统[1]。
本文提出了一种基于B/S (Browser/Server,浏览器/服务器)架构的质量信息管理系统设计方案,旨在通过现代化的网络技术,实现企业质量管理的信息化、自动化和智能化。该系统设计考虑了用户友好性、数据安全性、系统可扩展性等多方面,以适应不同规模企业的需求,对企业开展质量信息管理系统建设具有一定借鉴意义。
2. 设计目标
质量信息管理系统充分使用信息技术和互联网技术结合,进行质量管理和控制。通过收集、存储、处理和传递与质量相关的数据和信息,帮助企业实现质量目标和要求[2]。质量管理的核心是不断的改进,包括持续改进产品或服务的质量、流程的效率和组织的绩效。可以帮助企业实现以下目标:
1) 确保产品或服务符合质量标准和要求:通过建立标准化的过程和程序,质量信息管理系统帮助企业确保产品或服务的质量符合预期标准,并满足要求和期望。
2) 质量管理相关活动:质量信息管理系统提供了一套管理和控制质量相关活动的框架,包括质量计划、质量控制、质量评估等。它帮助企业建立质量目标、制定质量计划,并监控和改进质量绩效。
3) 促进持续改进:质量信息管理系统鼓励企业进行持续改进,通过收集和分析数据、进行内部审核和管理评审等方式,找到问题和机会,并采取相应的措施进行改进。
4) 提高企业绩效和竞争力:通过有效实施质量信息管理系统,企业能够提高水平,提升产品或服务的质量,增强企业的绩效和竞争。
3. 设计原则
1) 系统应采用B/S架构模式,兼容IE、Chrome和火狐浏览器,部署于企业专网,满足连接企业专网的所有用户使用需求。
2) 系统应具备灵活性、可维护性和可扩展性,模块配置项可定制,充分考虑兼容不同任务流程变化和信息数据特点,能够通过修改配置项或动态修改的方式实现管理内容和项目的修改、扩充等。
3) 系统的信息录入,应具备自动化、标准化接口,兼容接收不同业务管理系统数据信息,实现企业专网内系统信息采集生成功能,以及EXCEL、word、TXT文本信息的导入、导出功能。
4) 系统应充分实现各模块之间数据关联共享,最大程度减少人员数据维护规模,减少数据重复录入。
5) 系统应实现数据可视化分析、态势显示等功能,用户界面美观大方,操作简单明了。
4. 系统要求
质量信息管理系统的核心是质量信息管理系统软件,通过软件完成产品质量信息录入、监督、管理和评估,对各单位的产品质量信息尽可能的实现自动化信息录入、自动化分析、自动化生成任务报告,减少人力,实现信息自动化[3]。
4.1. 功能要求
1) 管理系统内部的文件和记录,包括制度、规范、审批记录等数据。
2) 扩展接入其他业务系统预留接口,获取有效信息;
3) 任务管理功能,能记录汇总各部门的工作任务;
4) 定期根据工作任务进度生成工作评估报告;
5) 提供多种标准任务模板,供用户下载使用;
6) 支持多种流程规范生成、编辑、更新;
7) 支持流程节点可编辑;
8) 支持缺陷管理、问题管理、风险管理;
9) 支持审核评估管理;
10) 支持质量培训管理,包括培训计划管理、培训记录管理等;
11) 支持绩效评估管理,生成绩效评估报告;
12) 支持统计分析、趋势分析;
13) 支持改进计划、改进效果评估;
14) 支持用户管理、角色管理、权限管理。
15) 具备日志管理功能,根据日志的类型、时间、内容等进行查询、显示、保存、下载等功能;
16) 支持EXCEL、Word、TXT等文档模板导入,支持EXCEL、Word、TXT、PDF表格导出。
17) 支持EXCEL、Word、TXT、PDF及各类图片格式文件上传存储;
18) 支持关键字查询、组合查询、模糊查询等。
4.2. 性能要求
1) 软件采用B/S架构;
2) 支持不少于500个用户,支持并发访问用户数量不低于100个;
3) 信息分析统计功能不少于4种:工作计划统计分析、工作进程跟踪统计、工作结果统计、培训统计分析等;
4) 信息统计分析可视化展示方式至少包含图、表两种方式;
5) 系统运行期间的CPU平均占用率低于≤30%;
6) 软件启动时间不大于10 s。
4.3. 操作界面要求
在设计质量信息管理系统的界面时,需要注意以下几个方面:
1) 界面简洁清晰:质量信息管理系统的界面应该简洁清晰,避免过多的复杂和冗余的信息。用户能够快速找到需要的功能和信息,减少学习成本和操作难度。
2) 易于导航:质量信息管理系统的界面应该有清晰的导航结构,让用户能够快速定位到所需的功能模块和页面。导航菜单应该简洁明了,可以使用层级结构或标签页等方式进行组织。
3) 易于操作和交互:质量信息管理系统的界面应该设计成易于操作和交互的,用户能够快速完成所需的操作。可以使用直观的按钮、输入框和下拉菜单等控件,以及清晰的提示和反馈信息,帮助用户完成操作。
4) 可扩展性和定制性:质量信息管理系统的界面设计应该具有一定的可扩展性和定制性,以满足不同组织的需求和特点。可以提供一些可配置的选项和界面布局,让用户能够根据自己的需求进行个性化定制。
5) 安全性和权限控制:质量信息管理系统的界面设计应该考虑安全性和权限控制。不同用户角色应该有不同的访问权限,界面应该能够根据用户的权限进行显示和操作的限制。
5. 总体设计
5.1. 系统组成
质量信息管理系统建设主要是建设一套质量信息管理系统软件及配套设备。系统采用B/S架构,依托企业专网建设。服务端由服务器及配套数据库构成,客户端由多个终端组成。客户端是部署于各部门的企业专网任意节点的终端电脑,可根据用户名和密码控制显示页面的内容和各自的权限,均采用浏览器浏览网页获得服务的形式。
质量信息管理系统的组成结构,系统由服务端、客户端和外设硬件组成,具体描述如下:
1) 服务端主要包括服务器及配套软件和数据库。服务端数据库对数据进行集中管理,存储需要的信息,提供存储空间,服务端后台程序实现所有业务逻辑。服务器前端程序实现显示页面的生成和采用各种布局和动画方案增加用户体验。
2) 客户端通过浏览器向用户提供信息入库、维护和查询,流程管理等功能。客户端按照用户管理机制分配权限实现。
3) 外设硬件,主要包括系统所需用到的信息数据录入导出外设。
4) 成熟业务系统接入,通过企业专网连接成熟业务系统服务器,访问其他业务系统的接口,获取对应的业务数据。
5.2. 软件结构
本系统采用B/S架构,利用公共的浏览器软件,通过URL地址访问系统,无需安装部署客户端软件,充分利用计算机系统资源,操作方便、灵活、速度快。软件结构如图1所示。
系统最底层为基础支撑层,主要是软件支撑环境和数据协议网关。该层是整个系统的基础,所有的服务、逻辑、显示都应在该层之上建设。软件支撑环境包括支撑应用程序的操作系统、支持数据管理的数据库软件、支持负载均衡的集群服务,为业务系统提供灵活的部署、运行与管理环境,为应用提供安全、高性能、可扩展、可管理全面保障的环境支撑。数据协议网关能够适配多种接入协议,能将外部系统的多类数据接入、校验、入库,确保入库数据的正确性和一致性。
Figure 1. System software structure
图1. 系统软件结构
第二层为平台服务层。平台服务层采用微服务的架构,将业务中多类数据访问、鉴权管理、日志管理沉淀为服务,是应用服务的基底,为上层业务提供基础的数据访问,是整个业务的核心。该层包含了三类服务,应用开发类服务、数据相关服务以及业务基础服务。应用开发类服务包括支撑业务微服务开发的Devops工具链,以及面向微服务管理的服务治理。数据相关服务,由数据采集与存储、数据汇总与管理组成。
第三层为应用服务层。该层是系统功能的实现层,同样使用微服务的架构,将业务逻辑封装为多个业务服务。该层也是界面交互层的服务层,为界面交互提供数据、计算、通信服务。该层包含策划、实施、检查、改进和系统管理等基础业务模块。
最上层为界面交互层,对用户提供人机交互能力,为整个系统的表现形态。该层采用浏览器为承载,构建了一个“组件+平台”结构,满足用户的权限控制、页面可配置等功能。界面交互层包含了业务显示组件和前端统一集成平台,前端统一集成平台涵盖了组件集成框架、统一样式文件、组件配置界面、权限控制、组件模板。
本系统采用B/S架构,服务器端的操作系统使用国产麒麟Linux系统,网络通讯使用HTTP、TCP/IP、UDP等标准协议,Web应用服务器使用Tomcat,数据库采用MySQL开源数据库。
6. 功能设计
质量信息管理系统的功能设计按照质量流程管理常用的“PDCA”方法[2],紧紧围绕策划、实施、检查和改进四大环节,从体系自身建立、保持和改进的角度,为企业提供开展质量管理的辅助平台和工具手段,实现企业质量信息的有效管控。系统功能基本框架如图2所示:
Figure 2. System functional design
图2. 系统功能设计
6.1. 策划
6.1.1. 体系设计管理
体系设计管理主要围绕企业建立的质量管理体系,从体系文件拓扑、构建规则库、岗位要求拓扑、体系文件管理等方面,实现企业质量管理体系的展示、分解、拓扑和管理。
1) 体系文件拓扑:基于企业质量管理体系基本架构,构建体系文件拓扑“一张图”,全面展示企业各级之间的体系文件映射关系,在直观显示体系文件的同时,也便于企业管理人员开展体系文件建立的查漏补缺;
2) 构建规则库:采用规则引擎、知识图谱、逻辑语言分解等方式,构建企业体系文件规则库,清晰展示企业层级体系文件、规章制度、标准文件之间的逻辑关系;
3) 岗位要求拓扑:在规则库建立的基础上,基于企业岗位设置,搭建岗位与质量管理体系之间桥梁,支持用户按岗位查询岗位职责、操作要求等内容;
4) 体系文件管理:负责管理质量信息管理系统的资料,提供以文件文本的形式上传、下载,部分类型内容支持在线编辑、在线查看。文件管理的内容包括:规章制度文件、标准流程管理、规范文件、操作指南、知识库管理、任务资料归档等。
6.1.2. 质量目标管理
质量目标管理主要围绕企业产品和服务范围,提供质量目标制定的模板,统一质量目标的主要内容、评测方法、结果标准等,对企业质量目标评估分析,通过监测点结果的输入,自动生成质量目标评测报告。
6.1.3. 风险管理
风险管理主要围绕风险策划、风险评估、风险应对、监督审查、风险管理有效性评价及优化改进等活动,建立企业风险库,便于企业开展风险评估与控制。
1) 风险评估:从风险发生的概率及可能带来的影响两方面进行分析评估,采用多种方法,分析这些因素产生的可能性、出现后的危害性,并进行等级划分;
2) 风险应对:针对风险评估结果,针对性制定风险规避、防控或减轻措施,主要包括技术防范措施、资源提供措施(如:人员培训、人力需求、装备设备及物资需求等),明确方法、时限及岗位职责,确保措施落实及监督检查、开展相关技术研究的可行性。
6.2. 实施
6.2.1. 质量日常工作管理
质量日常工作管理主要聚焦企业质量管理工作计划、工作落实情况和工作评估情况,借鉴技术较为成熟的项目管理方法,通过该模块发布企业年度、月质量管理工作计划和质量管理相关工作措施,以甘特图、泳道图等形式,直观展示工作推进落实情况,督导相关工作按计划落实。
6.2.2. 任务实施监测
任务实施监测模块负责各项任务的管理,包括任务、测试任务等。系统支持从各其他的成熟业务系统预留接口获取任务数据,导入本系统进行管理。管理的内容包括任务初期的任务信息登记、任务启动后的任务监督管理、任务执行过程中的任务预警管理、任务信息登记模板管理、任务执行过程的报告管理,任务执行后的综合评测。具体如图3所示:
Figure 3. Task implementation monitoring
图3. 任务实施监测
1) 任务信息登记:负责任务启动时的基本信息登记,登记的内容包括所属部门、负责人、参与人员、任务名称、任务类型、任务地点、设备设施、任务预算、任务时间节点、任务目标等。
2) 任务监督管理:任务实施过程中,按照时间节点,对任务执行情况进行记录,记录的内容包括完成百分比、负责人及参与人员变更、任务目标变更、任务偏离信息等。
3) 任务预警管理:对于任务执行过程阶段性结果有偏离、出现差错、超时的情况,系统对相关人员发出预警。
4) 任务信息模板:质量管理员按照任务类型,定义任务信息模板,由任务参与人员按照模板输入任务信息。
5) 任务报告管理:系统根据任务信息登记、任务过程监督及任务结果,按照不同任务模板生成任务报告。
6) 任务综合评测:对不同类型的任务综合评测,生成评测报告。
6.2.3. 质量培训
1) 收集并发布与企业质量管理体系相关的培训教材、培训视频等材料,为企业开展质量管理体系线上培训、企业员工自主开展质量管理体系学习提供平台。
2) 发布企业质量文化等相关材料,介绍业内先进质量管理经验,宣传企业内部质量管理先进单位业绩、人员事迹等,进一步激发广大员工的质量认同。
6.3. 检查
6.3.1. 质量评测
1) 通过质量视角对任务进行评估,确定质量评估要素,建立质量评估指标体系,统一质量评测的主要内容、评测方法、结果标准等,构建任务的质量评价模型。
2) 对任务完成情况及任务质量进行量化评估,自动生成质量评测报告,为质量管理体系提供可信的质量依据。
6.3.2. 质量内审
1) 发布年度内审计划,包含年度内审的单位、重点内容。
2) 发布单次内审安排,包括内审的单位、内审组组成、主要内容等。
3) 发布内审情况报告,相关内容问题作为质量评测的输入,相关待改进项作为持续推动解决的重点关注事项。
6.4. 改进
6.4.1. 管理评审
1) 建立企业质量管理工作情况通报制度,通过平台展示完成的主要工作、好的方面、质量问题挂销账情况、质量管理待改进项,督促相关单位及时闭环相关问题。
2) 企业质量管理评审会议召开前,通过平台发布会议议题,便于参加管理评审人员了解掌握会议议题、流程等,开展事先准备。
3) 企业质量管理评审会议召开后,通过平台宣贯会议精神,采取拉单挂账的方式,督促会议精神落实。
6.4.2. 质量问题控制
1) 实现质量问题获取、质量归零评审的信息化,包含管理归零和技术归零,支持上传问题情况报告、问题归零报告和措施落实记录等材料,能够根据问题情况报告提取关键信息,或通过手动填报等形式,在首页态势显示。
2) 能够根据归零报告形成质量问题库,并根据硬件问题、软件问题、管理问题、技术问题等类别,进行简要问题分析[4]。
6.5. 系统管理模块
该模块对系统进行管理,包括组织、角色、人员、账户、操作日志等信息,具体内容分为组织管理、用户管理、角色管理、权限管理、菜单管理、通知公告、日志管理等,该功能由系统管理员进行操作。内容如图4所示:
Figure 4. System administration
图4. 系统管理
1) 用户管理:注册用户,设置密码,注册时应填报真实姓名、密码、选择所属单位、用户角色,其中用户角色可以多选。
2) 组织管理:由系统管理员增加、修改、删减若干科室单位及其二级组织信息。
3) 角色管理:系统管理员、部领导、部门领导、科室领导、科室质量管理员、质量监督员、质量部管理员等角色管理。
4) 权限管理:可以根据用户角色属性及实际使用需求,灵活配置权限。
5) 菜单管理:管理各个功能模块在不同角色视角下的展示模式或隐藏。
6) 通知公告:发送系统通知,配置系统自动发送通知。
7) 日志管理:记录并展示用户在系统的操作记录,可导出日志。
7. 关键功能实现方法
7.1. 数据接入工具
数据接入主要实现从企业数据库中接入相关质量信息数据。为支持质量信息数据的实时接入,保障质量信息管理系统能够实时监督任务全过程,系统将采用实时数据采集接入设计,利用实时网络数据传输接口,实现对实时数据帧的采集与接收。
7.1.1. 实时数据接入
实时网络数据传输接口采用TCP/IP协议,数据以数据帧的格式进行传输,接口速率为1000 Mbps,实际传输时,传输层实时采用UDP协议,数据按照帧格式进行传输。
实时数据接入采用Flume来实现。Flume设计成一个分布式的管道架构,可以看作在数据源和目的地之间有一个Agent的网络,支持数据路由。每一个agent都由Source,Channel和Sink组成,如图5所示。
这样连接不同配置的Agent就可以组成一个复杂的数据收集网络。通过对agent的配置,可以组成一个路由复杂的数据传输网络。
通过Flume技术实现将实时任务数据接入系统中,同时,Flume支持设置sink的Failover和Load Balance,可以保证即使有agent失效的情况下,整个系统仍能正常收集数据。
Figure 5. Flume Agent implement
图5. Flume Agent实现
7.1.2. 自动化数据接入
同时,为提高质量信息管理系统的自动化程度,减少人为干预,在数据接入过程中将采用自动化采集方式。
Figure 6. Data collection process
图6. 数据收集流程
具体的自动采集的过程如图6所示:
1) 自动采集。响应采集控制系统的釆集命令,并从接口及驱动中获取质量数据。
2) 数据判读。设置采集数据的上下限,实现预警和报警机制。
3) 上传下载。采集子系统发送实时数据至数据传输系统,传输子系统上传实时数据至采集控制系统,采集子系统接受来自采集控制系统的任务和命令。
4) 临时存储。由于采样频率高或数据量大,需要将数据通过本地或缓存方式进行临时存储,由传输子系统延时或试后发送至本地数据库系统进行存储,临时存储的形式包括文本文件,Excel文件、XML文件、ASCII文件、二进制文件等。
通过数据采集功能对质量信息数据进行自动化采集,借助于数据传输系统对质量信息数据进行快速传输,最终完成质量信息数据标准化存储。
7.2. 质量事件发现工具
质量事件的发现将采用规则引擎的方式,实现基于判别规则的质量事件的自动识别与提取。质量事件发现将通过规则引擎实现基于规则的自动判读。模块将规则执行与规则描述分离,用户可以随时根据规则的更动需求对规则进行修改和调整,并交给规则引擎进行执行。通过规则引擎和规则描述语言,就可以方便的实现对规则的更动,满足用户在任务长期执行过程中的业务逻辑变更需求。质量规则引擎在部署后将持续自动运行,持续监听任务业务数据,并依照制定的质判别规则对任务执行进行检查与分析,发现质量事件并实现自动向用户返回对应的质量事件。
7.2.1. 规则库管理
规则库管理负责质量规则库的构建与管理。质量规则库负责质量规则的存储。规则描述存储在规则库中,并根据需求由规则引擎从规则库中获取规则执行。
系统应用知识库结构的方式,建立相对应的质量判断规则库,用以存储质量问题判断检查规则,并按照规则树的形式来管理规则。同时,系统将同时支持系统预设的常用类型检查规则和用户自定义的规则扩展。
7.2.2. 规则引擎实现
规则引擎通过将规则库中的规则进行规则判别与推理,能够实现依据规则库中的规则进行自动化的决策,发现质量问题。质量规则引擎负责将发现质量事件的逻辑抽取出来,将其转变为简单的质量规则,以结构化的规则数据来表示质量事件,采用类自然语言来描述,并集中存储在规则库中。
分布式规则引擎在开源规则引擎Drools的基础上进行改进,构建一个支持分布式规则执行的规则引擎。分布式规则引擎重在实现分布式规则执行,因此对Drools进行了精简,只保留了构成规则引擎的一些基本构件。在此基础上结合规则引擎集成平台,实现了一个分布式规则引擎原型。
7.2.3. 异常事件复核
异常事件复核主要实现将通过规则判断发现的质量异常事件进行二次审核以确保不出现质量异常误判。异常事件复核将实时监听规则引擎所发现的质量异常事件,并根据发现的异常事件类型生成质量异常事件信息,包括质量异常事件种类、事件内容、关联任务、关联技术文件等,并推送给质量人员进行复核,质量人员能够在统一的界面上浏览异常事件信息,并进行异常事件复核,确认为异常事件的将自动生成质量问题工单及对应的质量问题工作流,推送各相关人员闭环解决。
具体异常事件复核流程如图7所示:
Figure 7. Abnormal event compounding process
图7. 异常事件复核流程
7.3. 评估报告生成工具
评估报告生成工具主要负责按照配置的评估报告模板,自动生成质量评估报告。评估报告生成工具由数据源管理、模板管理和生成引擎等3个子模块构成,其中生成引擎是系统设计的核心。评估报告生成架构如图8所示:
Figure 8. Assessment report generation architecture
图8. 评估报告生成架构
对数据源文件提供了自动同步的快捷上传方式,在模板管理模块,由于现在在线电子办公系统的流行,我们采用支持浏览器在线对模板进行管理。用户可以在线通过pageoffice在线编辑文档。自定义模板类型时,运用word自动化技术添加相关功能针对性地对模板定制提供支持,支持版本管理,全文检索,以方便用户按不同的需求建立自己的模板体系,使专业知识不断积累,在应用中对模板不断调整,以“积沙成塔”的模式架构知识体系。报告生成模块基于模板和数据源的特点实现了数据集提取,模板解析及报告生成。生成管理系统,对生成过程进行控制。
7.3.1. 评估结果数据源管理
数据源文件是质量评估报告生成的生产资料,在使用工具之后,或是在不同的工作阶段结束之后,都会产生或者变更大量的数据源文件,且容易分散。系统运行建立在数据源已经客观产生的条件下,结合已经存在的数据源和定制的模板。
1) 数据源的同步监测
质量评估结果按照装备类型不同,指标体系设置不同,指标权重配置不同都会有产生不一样的评估结果数据,这个数据作为评估报告展示的数据源来说是经常变动,频繁更新的。数据源文件中的内容是最终报告中的动态部分的信息来源,那就意味着报告的生成会有频繁的数据源上传操作。如果每次变动都要去一个个找出来并上传的云端是一件麻烦的工作,为了方便本地与云端之间的数据交流,提升自动化水平,设置云同步功能。用户可以在本地设置一个文件夹,专门用来存放用来生成报告的数据源文件,可以把一些会产生数据源文件的其他程序的文件生成路径设置到这里。对这个文件进行监测,一旦文件夹下的数据产生变化,那么报告生成系统自动进行监测,自动同步更新,不需要人为干预。
2) 数据源的差量传输
数据源上传的时候,会耗费一定时间,占用系统资源。当系统监测到本地文件夹的变动之后,对于一些更新类型的文件,更新类型内容可能只占文件的一小部分。此时,全部重新上传占用带宽,是一种低效率的办法。那么,对于部分变更的文件,对传输过程进行优化,在对本地文件域云端文件比对后进行差量传输,提高传输效率。
7.3.2. 评估报告模板管理
评估报告的模板其实就是一个可以多次使用的多种信息汇集在一起的集合,包含了文档的格式、内容、样式,可能还会包含一些宏功能。文本格式包括文字,段落,表格,页面等划分形式。样式包括字体类型,段落间距,行距信息等呈现方法。内容有文本,连接控件对象,图片,表格等操作对象。当用户每次根据特定的需求想生成一篇特定格式的文本时,这样就会用到模板。本系统中的模板应该用规定的标签语法重写过。
1) 模板的在线编辑
模板的定制是在word的编辑条件下进行的,需要通过控件的方式把word程序集成进来。定制过程中使用的标签语法应设计得足够灵活,未来模板二次编辑发生变更时,也可以支持,避免还要对生成引擎进行修改的状况。在模板定制过程中,工作量比较大的地方是要进行频繁的标签输入,对于这点做针对性支持,把常用标签集成。
模板编辑权限是一个用户权限,而具体的某个模板文件也可能具有特定的文件权限,如被管理员设置为终版不得修改,设置为终档不得修改的模板普通用户不可进行编辑,只有管理员权限可以操作。
2) 模板版本控制
对模板文件的版本进行有效管理。在模板文档的编辑修改行为之后,需要对当前的阶段性劳动成果予以保存。当前版本的编辑,是对当前需求变更的适应性操作,每一次的升级修改,都会包含不确定性。需要把不同用户对模板的修改操作完整保存下来,健全一个文档的生命周期,当新版本不满足要求或是要产生历史文档的时候,可以随时按版本调用,支持对历史版本查看和回滚。
3) 模板检索
模板检索支持两种方式,一种是通过查找题目中的关键词找到文档,一种是对模板内容中关键词的搜索,即全文检索。在对大量模板文件管理的情景下,需要实现全文检索,当搜索一个参数项目,想知道该项目都在哪些模板文档中出现过,定位出现位置,统计出现次数,也需要全文检索。
7.3.3. 评估报告生成
评估报告的生成是重点模块,其主要使用生成引擎来实现。评估报告生成模块和其他部分独立存在,应该高效稳定资源占用少,将分离的数据和模板两部分相互融合。生成引擎应该具备以下功能:
1) 数据集提取加载功能
根据实际项目需求,数据格式各异,信息组织形式多样。需要探讨如何从种类繁多的文件中提取统一类型,能被系统类型的数据信息。在系统的设计与实现中对数据源文件的解析方式,提取规则及加载策略进行讨论。
2) 模板的解析功能
模板解析的前提是模板已经用按语法规定的标签重写过,对标签中设计的功能逻辑进行分析识别和动态转化。考虑到在服务器上运行的稳定性,对模板doc类型文件的解析需要使用线程安全的技术。
3) 数据集合和模板的融合处理功能
在数据源文件和定制的模板已经具备的前提下,并已经进行了数据源文件的加载和模板解析等必要的预处理操作。在融合过程中相互分离的模板和和数据源将进行统一。注意报告中不同类型的部分文字,图表,图片生成的细节要点,原则上生成的报告产品直接可用,不需要进行格式调整等二次操作,可以支持生成word、pdf、html、excel等多种类型的评估报告。
生成引擎从内部结构上可以看作是管道过滤器的设计模式,每个功能模块相互独立,具有各自的功能,各种功能组件相互拼接组装成为一个完整的系统。
系统采用Aspose.Words作为评估报告的生成引擎,Aspose.Words是用来处理文档任务的第三方类库,具有很强的兼容性,支持Doc,Docx,RTF,HTML,Open Document,PDF,XPS,EPUB等格式。所有的Aspose组件都是独立,可以运行在Windows,Linux和Mac OS操作系统上面。使用Aspose.Words可以在不使用Microsoft.Word的情况下生成、修改、转换和打印文档。