摘要:在Asp.Net(C#)三层体系结构下,采用智能客户端(Smart Client)的开发模式,结合目前制糖企业的两种制糖生产工艺和化验室化验分析业务特点,研发一套具有通用性的化验室化验分析系统,系统通过参数化的配置能快速实现在各个制糖企业中的应用。
关键字:制糖企业;化验分析;智能客户端;通用性;参数化
目前我国制糖企业生产工艺主要有两种,一种碳酸法,一种亚硫酸法。碳酸法用石灰和二氧化碳作为澄清剂来澄清蔗汁,而亚硫酸法则是通过石灰和二氧化硫反应,产生澄清作用。两者的区别在于碳酸法流程长,设备投入大,生产成本高,质量相对较好;亚硫酸法由于流程短,设备投入少,生产成本低,质量相对较差。目前,全国大部分糖厂采用亚硫酸法进行生产,占主导低位。
制糖企业化验室业务处理也分两部分,首先是化验员对各种采样化验样品的观测、计算,即样品分析阶段;其次是对各种采样计算结果进行汇总,即生产报表阶段。目前,大部分制糖企业化验室对以上两种业务的处理还是以手工计算为主,由于日常数据处理量大,工作繁琐,极易导致数据计算错误或抄写错误,因此无法及时给生产调度及企业领导决策提供可靠的依据。
几年来,通过兼并联合、股份制改造、中外合资等多种方式,涌现出了一批糖业集团,随着集团管理的进一步规范,迫切需要一套能适应集团化管理的化验室化验分析系统:从生产工艺上可满足制糖企业两种生产工艺的化验分析,从业务上可实现样品分析与生产报表的结合与拆分使用。本文以多个制糖企业(集团)的生产工艺和实验室的实际业务处理为依据,阐述了系统的设计原理、系统功能及实现方法等问题,通过系统中参数化配置可快速实现在多个制糖企业(集团)中的应用。
1、系统主要原理
1.1 三层体系结构
随着软件系统的规模和复杂性的增加,软件体系结构的选择成为比数据结构和算法的选择更为重要的因素,三层体系结构为企业资源规划的整合提供了良好的框架,是建立企业级管理信息系统的最佳选择。系统采用三层结构设计(如图1所示),即表示层、业务逻辑层和数据层。表示层负责为客户提供应用服务的图形界面,处理用户的输入和向用户的输出,业务逻辑层封装了与系统关联的应用模型,并把表示层和数据库代码分开,主要处理业务逻辑和业务规则(包括数据计算、数据验证),数据层是三层模式中最底层,他用来定义、维护、访问和更新数据并管理和满足应用服务对数据的请求。
1.2 智能客户端
智能客户端(Smart Client)技术是微软给企业信息化应用提供的一套解决方案。它吸取了传统B/S架构易于版本控制和更新以及C/S架构用户界面强大、易于操作、使用客户机资源的特点,客户端使用Winform,服务端通过Web Service调用业务逻辑规则,因此比传统的B/S和C/S结构更具有优势:只要在服务器上更新软件,客户端即可通过Http自动检验版本更新;结合Winform上的各种控制和资源,突破B/S浏览器表现能力的限制;可以充分使用客户端的计算能力,很方便的整合的客户端的软件和硬件资源;同时在系统安全方面也要比B/S架构具有更高的安全性。
2、系统功能及实现
2.1数据管理
以关系型数据SQL Server2000为平台,实现数据的存储、读取、增删、修改等操作。
2.2样品分析
样品分析数据是制糖企业生产过程中最原始的数据,各类生产报表都以此数据为数据源头,系统构建了制糖企业两种生产工艺下的化验样品分析,通过对其生产工艺的设定调用不同的化验样品分析。同时对各种化验样品的计算公式、数据验证采用XML文件进行定义,系统录入采样观测数据后即可依据XML文件自动进行数值的数据验证和公式计算(如图2所示)。
2.3 数据汇总表
为了化验室化验分析系统中样品分析与生产报表的能进行拆分使用,降低模块间的耦合性,系统设置了一个数据汇总表功能。该功能记录的是进行生产报表制作时所需的关键数据,该功能的数据可以进行手工录入,也可以通过样品分析后进行数据导入完成。此功能紧密结合了现有制糖企业化验室实际业务需求,为系统能在各制糖企业中更广范的应用奠定了基础(如图3所示)。
2.4生产报表
生产报表的制作在完成化验分析之后进行,是反映企业生产状况并指导企业生产的重要依据,也是企业用以管理生产、产品销售等的决策依据。系统通过引入样品分析的原始数据(或数据汇总表数据),即可自动生产制糖企业生产报表,然后根据对生产工艺的设定进行报表调用(碳酸法报表和亚硫酸法报表),该参数化的配置既能实现单个制糖企业要求,也可满足集团化管理下多个制糖企业的要求(如图4所示)。
2.5参数配置
(1)生产工艺设置
生产工艺设置是整个系统的核心,不同的工艺配置显示不同的样品分析项目及生产报表。在规范化集团管理的化验模式下,能快速实现系统在集团中的应用,可缩短项目实施时间,从软件开发角度来说,也减轻了系统的维护工作(如图5所示)。
在本系统中,相关的生产工艺设置为:
读取生产工艺信息放入缓存中,系统直接从缓存中读取该信息。
Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager cacheManager‘定义变量;
So2orC=GetSo2orC();’ So2orC为当前生产工艺
cacheManager.Add("So2orC", So2orC);‘将So2orC放入缓存中
图5 生产工艺设置
(2)帐套设置
在制糖企业实际的生产过程中,往往需要在多个帐套间切换数据,从而实现跨年度数据查询和对比分析(如图6所示)。
在本系统中,帐套设置与读取为:
HttpContext.Current.Session["CurrQtyDbName"] = value;‘设置当前帐套
HttpContext.Current.Session["CurrQtyDbName"] =GetDefaultQtyDB();‘读取默认帐套
图6 帐套设置
(3)数据验证设置
化验分析系统涉及大量原始观测数据的录入,为了减少化验员输入数据时的错误,增加数据录入准确性,系统提供了各功能点的数据验证设置,每个功能点的验证有一个XML文件进行定义,包括数据库的字段名、描述、验证的最大值、最小值以及是否只读和必填要求,通过该XML文件的定义,不仅可以对数据进行验证,还可以控制数据是否进行录入操作(如图6所示)。
在本系统中,数据验证设置为:
将XML验证文件序列化为一个对象
ValidatorConfig validatorCfg =GetValidatorConfig(a);‘a为Xml文件
将对象保存为XML文件
XmlSerializer ser = new XmlSerializer(validatorCfg.GetType());
StreamWriter writer = new StreamWriter(validatorCfg.Path);
ser.Serialize(writer, validatorCfg);
图7 验证设置
(4)公式设置
化验分析系统涉及大量的公式计算,且部分公式会随企业实际生产情况进行动态调整,为提高系统的可维护性,系统提供了各功能的公式设置,每个功能点的公式有一个XML文件进行定义,包括数据库的字段名、描述以及和它们对应的计算公式,公式可自由增加,但只有一条公式作为当前系统应用公式(如图7所示)。
在本系统中,验证设置为:
将XML公式文件序列化为一个对象
CalculateConfig calculateCfg =GetCalculateConfig(a);‘a为Xml文件
将对象保存为XML文件
XmlSerializer ser = new XmlSerializer(calculateCfg.GetType());
StreamWriter writer = new StreamWriter(calculateCfg.Path);
ser.Serialize(writer, calculateCfg);
图8 公式设置
3、结论
利用计算机及信息技术代替传统手工业务处理,及时准确的反映生产数据,加强对生产控制与调度能力,提高企业的工作效率和管理水平,是制糖企业今后发展的趋势。
(1)采用智能客户端(Smart Client)的开发模式,既可实现无网络环境下的单机版运行,也能满足网络环境下集团化验分析的统一管理。
(2)通过参数配置即可满足制糖企业不同生产工艺下的化验分析要求,并可根据化验室实际应用需求灵活选择样品分析与生产报表两部分功能,因此系统具有行业应用通用性。