朱光亚+周月如
摘要:纺织样品管理系统是专为国内某纺织领域国企样品仓库设计的用户样品管理平台,旨在提高企业样品管理规范化程度,有效监管、统计企业纺织样品的实际生产、销售情况[1]。样品出入存报表功能作为系统为实现样品全流程追踪中最为关键的功能模块,很好的反映了一段时间内所有样品的销售情况,为公司下一步经营生产策略的制定提供重要的数据保证。该模块沿袭了系统的C/S架构,初步设定以MySQL作为数据库,客户端采用WPF与服务器进行数据交互,服务器采用SpringMVC+Hibernate+Mysql完成业务逻辑功能实现[2-5]。
关键词:纺织企业应用;样品管理系统;Java;Hibernate
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)01-0099-02
随着“互联网+”的逐渐普及,互联网与传统行业的深度融合正在日益加深。纺织行业作为中国自古以来“男耕女织”式自然经济的主要代表,可以称作最为古老的传统行业。“纺织样品管理系统”的提出,不仅仅是企业的现实需求,更是对“互联网+”时代的最好回应。样品管理系统正是在这一客观条件下提出,可以作为原ERP系统中纺织品跟踪、仓库管理、样品营销的取缔品。出入存报表功能作为系统的一个重要功能模块,是对样品全流程追踪的总结和直观体现[6-9]。
1 出入存报表总体功能设计
出入存报表模块的后台功能设计主要包括数据获取、数据初始筛选、数据记录类别分类、同编号信息合并、样品信息补全、待返回数据处理。前端以WPF窗口程序作为客户端,其主要功能是与后台进行信息的交互,通过HTTP.POST方法传参,提交用户查看出入存报表的具体要求,并使用DEVEXPRESS数据报表中的Reporting相关组件向客户展示报表。用户可以通过本地客户端提交有效的信息反馈给后台,由服务器实现报表记录的计算生成,从而完成本地C端与服务器之间的通信[10]。功能结构如图1所示。
服务器功能实现通过Java实现。采用SpringMVC框架,数据库操作通过Hibernate实现每张表映射为一个实体类。服务器分为Controller层、Dao层、Service层、Entity、ViewModel。Controller层主要负责数据的接收与返回。Dao层完成对数据库的操作。Service层用以实现所有的业务逻辑。Entity中每一个实体类对应数据库的一张表。ViewModel用来定义传参的参数类具体内容。为保证数据的一致性,事务“@Transactiona l”注解设置在Service层,防止业务逻辑实现过程中出现了异常导致数据库出现错误的记录[11,12]。
2 数据库设计
纺织样品管理系统的数据存储采用MySQL数据库,数据库名称为hfsampledb。根据客户需求和系统设计必要需求,数据库主要分为用户管理相关表、样品业务相关表、样品详细信息相关表、原系统数据转存相关表、样品展厅相关表五大类。针对目前客户所提出的实际需求,出入存报表主要是对样品入库表、样品出库表、面料信息表中的信息进行分类统计。与该功能相关的数据库结构图如图2所示。
以出入库表为例,其数据表设计如下。
1) 样品入库表(table_business_i nstorage):主要保存样品入库时所产生的数据记录,包括入库编号、样品编号、入库数量、入库日期、操作员编号、业务员编号、仓库名称、库位名称、创建时间戳、单据回冲标识、入库原因、样品转移仓库来源。其他详细信息见图2 。
2) 样品出库表(table_business_o utstorage):主要保存样品出库时所产生的数据记录,包括出库编号、样品编号、合同编号、出库数量、出库日期、业务员编号、客户姓名、样品邮寄状态标识、样品归还状态标识、归还数量、归还日期、记录销毁状态标志、创建时间戳、仓库名称、库位名称、出库原因。其他详细信息见图2 。
3 功能实现
3.1 主界面设计
主界面包括条件筛选和报表两个界面[13]。条件筛选界面实现对报表生成条件的限制,目前基于客户需求限制条件为出入库的时间上下限节点,一共四点,可以全部限制,也可以部分限制。如图3所示。报表界面为用户提供所有样品的出入存信息,包括部门、订单编号、规格、颜色、样品类型、样品来源、客户名称、业务员、克重等属性,同时计算每月出库数量、入库数量、库存的各自流水总量。报表附加功能包括按已有属性进行排列和分组、自定义报表属性(可以修改已有的属性,隐藏或添加)、导出excel。如图4所示。
3.2 出入存报表功能详细设计
出入存报表打印需要企业用户通过前台客户端提交报表筛选条件,由服务器按照录入的条件进行符合要求的数据初始获取。服务器进行第一步数据获取后,产生两个未经处理的List ,按照样品编号递增排列。对于这两条List,根据实际应用中对于最终结果的要求,进行数据初始筛选,去除每一条同仓库间仓库转移的单据记录,去除每一条被销毁的单据记录。数据初始筛选后两条List中的数据都是有效数据,接下来处理第一条数据。结果数据列表resultList的结构由主界面设计中提到的所有属性名组成,resultList中,每个样品编号对应的出库记录分别占据序号2n,2n+1(n∈N),resultList[2n]是计划内样品记录,resultList[2n+1]是計划外样品记录。n=0时,选择两个列表中样品编号较小的一条,如果一样则直接选入库列表的第一条作为结果列表的第一组数据[14]。功能流程图如图5所示。
出入库两个列表没有一个处理完时,不断地比较未处理的最新记录的样品编号,若与结果数据列表最新一条一致则累加,若不一致则新建两个记录,分别保存样品编号新的计划内外记录。当出入库列表有一条已经处理完成,剩下的一个列表的所有元素都是符合顺序的递增排列,逐个添加到结果列表即可。每新建一条记录的同时需要在面料样品信息表中补足足够的信息。转化为Json格式之前需要把resultList中样品编号对应出入库数量都为0的移除。endprint
4 结束语
服务器采用的设计模式便于处理用户在实际生产和使用中产生的新需求。ViewModel作为筛选条件和返回结果的数据层,仅修改ViewModel层即可改变返回结果,适用性强。而报表界面提供强大的分组、排序、导出、自定义列表项功能对企业月度年度总结报表产生了很大的便利,为员工按劳计算奖金、部门按量计算筹资提供了简单有效的方法。
参考文献:
[1] 吴泽全,东忠阁,刘立强. 基于物联网的水田无线监控系统设计[J]. 农机化研究,2018,40(3):65-69.
[2] 曾观音. 基于权限和功能的APP个性化推荐算法的研究[D]. 武汉:武汉大学,2017.
[3] 余久久. 面向SPOC的自主学习系统的设计与应用[J]. 西昌学院学报:自然科学版,2017,31(1):57-61.
[4] 田红. 智慧课堂学习平台的设计与应用[J]. 软件,2017,38(2):139-142.
[5] 洪莉萍. 基于C/S架构的税务报表收集管理系统的设计与实现[D].长春:吉林大学,2016.
[6] 程玲. ERP系统中会计电子档案的设计与实施[D].济南:山东大学,2016.
[7] 丁恒,陆伟. 标准文獻知识服务系统设计与实现[J]. 现代图书情报技术,2016 (Z1):120-128.
[8] 赵静. 基于.NET的企业培训管理系统的设计与实现[D]. 北京:北京工业大学,2016.
[9] 陈海明,崔莉. 面向服务的物联网软件体系结构设计与模型检测[J]. 计算机学报,2016,39(5):853-871.
[10] 于春平. C/S模式车间级生产管理系统的研究[D]. 大连:大连理工大学,2008.
[11] 李继唐. 基于C/S和B/S的教务管理系统的设计与实现[D]. 天津:天津大学,2008.
[12] 唐明靖. 面向Web的报表、图表统计系统研究与实现[C]//中国通信学会青年工作委员会.第一届中国高校通信类院系学术研讨会论文集.中国通信学会青年工作委员会,2007:7.
[13] 邹坚,李世平,魏小飞. 基于LabVIEW的自动测试系统中的报表生成研究[J]. 自动化仪表,2006 (11):68-70.
[14] 张军. 基于.NET的报表生成系统设计[D].西安:西北工业大学,2004.endprint