安徽省地方品种猪智慧管理平台研发
2021-02-13管博伦刘桂民张立平
管博伦 刘桂民 董 伟 张立平 钱 蓉
(安徽省农业科学院农业经济与信息研究所,合肥 230031)
1 引言
生猪养殖在我国的历史悠久,但是我国的生猪养殖信息化管理建设却起步较晚,欧洲发达国家于20世纪50 年代就已经开始建设并使用信息化生猪养殖系统[1]。新西兰开发的pigwin 猪场管理系统功能齐全、操作简单,是具备数据输入和报表导出的综合新猪场管理系统[2]。丹麦的winpig 猪场信息化系统包含了生猪产业链的育种、饲料生产、屠宰等各环节,目前在世界上各大规模集团化猪场广泛应用[3]。目前国内在生猪的生产管理方面也有一些大规模化的信息化软件,如金伟康等人[4]开发的基于物联网的生猪饲养管理系统,实现了射频识别技术(Radio Frequency Identification,以下简称“RFID”)、智能交互、环境监测等为一体的生猪信息化管理系统。青林、王春光等人[5]开发的基于Django的规模化猪场管理系统,完成了在养猪各个环节对猪场的信息化管理和对生产数据的动态分析。雷兴刚等人[6]利用RFID 等技术开发了猪场溯源管理系统,该系统从生猪产业链的源头上对猪肉的品质进行了监控。
随着社会经济和信息技术的发展,国家对畜牧业信息化的支持力度也在不断加大,各种小规模、中规模和大规模的养猪场的数量也在不断增加,生猪产业已经逐步成为农村经济发展的支撑性产业[7]。对于中规模和大规模养猪场来说,财力、物力保障充足,生猪产业链中各专业的人才也较为完善,各种信息化养猪平台也在中、大规模养猪场十分普及。
使用信息化养猪平台,可以为中、大规模养猪场节省大量人力成本,同时能更加精准地把控种猪饲养、屠宰销售乃至育种分析整个产业链,增加利润,形成了良性循环。同时,我国小规模养猪场在全国养猪规模中也占据了不可忽视的比重,虽然其年出栏量规模不大,但是小规模养猪场的数量多,安徽地区的小规模养猪场的数量甚至超过了中规模养猪场[8]。小规模养猪场的财力、物力没有中、大规模养猪场充足,各种专业人才的配备也不齐全[9],大多数以长期饲养猪的农民为主,当其饲养生长周期较长的安徽本地猪品种时,投入大、资金回转周期长,其利润又进一步降低。这些原因直接导致了小规模养猪场管理水平不高,系统化、信息化程度较低等问题。
本文在研究了国内外生猪养殖信息化平台的基础上,以安徽本地小规模养猪场现实存在的问题为切入点,分析其生猪饲养的流程和需求,完成了适用于安徽本地小规模猪场智慧管理平台的研发,提高安徽本地小规模养猪场的管理标准化、信息化、专业化,降低该类型养猪运营的成本。
2 平台总体设计
2.1 用户需求
结合小规模养猪场的流程规范,猪场管理主要可以分为配种、妊娠、分娩、保育、育肥和后备六个阶段,管理对象分为母猪、仔猪、公猪,如图1 所示。其中对于母猪的管理涉及的阶段最多也最复杂,贯穿了整个生产过程,主要包括配种舍中饲养的空怀、后备、断奶母猪与公猪进行配种,妊娠舍中对已配种母猪饲养15周,临产前一周将母猪转入分娩舍中饲养4周(1周临产,3 周哺乳仔猪),断奶后的母猪经检查符合配种要求的再次转入配种舍等待配种。仔猪的管理主要分为母猪在分娩舍中3周的哺乳管理,仔猪在平均21日断奶后转入保育舍进行饲养,在保育舍饲养6 周后转入育肥舍进行育肥,在育肥舍饲养105 天左右、体重达到100-120 公斤出栏上市,在育肥舍中需要对育肥猪进行检测,对符合配种要求的猪在体重60-80 公斤时转入后备舍中饲养或者作配种猪出售。公猪的管理主要是在仔猪育肥阶段,对符合配种的公猪转入配种舍与待配母猪进行配种[10]。
图1 猪养殖流程图Fig.1 Swine breeding process
2.2 系统设计
根据生猪饲养规范和小规模猪场实际饲养流程,本文开发了一款综合性、便捷化的生猪饲养管理平台。该平台是一个包括公猪事件、母猪事件、仔猪育肥猪事件、猪场兽医监测、遗传测定、库房管理、猪场其他事件和统计分析为一体的生猪养殖综合管理系统。为了贴近生产便于管理,该系统可为使用系统的不同猪场建立独立的使用空间,每个使用的猪场下的用户角色分为猪场管理员和普通用户模式。该系统的功能组成如图2所示。
图2 系统功能组成图Fig.2 System functional composition
(1)公猪事件功能模块。公猪事件模块用来记录在生产过程中公猪的基本信息,包括公猪入群、公猪购买、公猪死淘、公猪饲喂方案、公猪转入、公猪转出、公猪采精信息、公猪销售。
(2)母猪事件功能模块。母猪事件模块是记录母猪在生产过程中的基本信息,业务逻辑也是最为复杂的一个模块,管理员可以在此模块中对母猪从配种、分娩、饲喂到哺乳仔猪的饲喂等进行管理。主要包含母猪转入、母猪转出、母猪死淘、母猪销售、母猪进群、母猪后买、母猪饲喂、母猪体况评分、母猪体貌评估、母猪断奶、母猪分娩、母猪流产、母猪发情诱情、母猪发情用药、母猪妊检、母猪配种、哺乳仔猪寄入、哺乳仔猪寄出、哺乳仔猪死淘。
(3)仔猪育肥猪事件功能模块。仔猪育肥猪功能模块实现了仔猪育肥猪从断奶后的饲养到上市销售的管理,包括仔猪育肥猪转入、转出、购买、盘点、发育监测、销售和设置仔猪育肥猪的批次。其中发育监测监控了整个仔猪育肥猪生长过程,帮助管理员预先对一些发育情况采取措施。
(4)猪场兽医监测功能模块。兽医监测模块主要是在生猪生产过程中对猪只进行免疫和防治的功能模块。小规模养猪场的管理员往往缺乏更专业的兽医知识,对生猪疾病的预防和治疗缺乏经验,兽医监测模块能够帮助管理员很好的预防和治疗常见的疾病,它主要包含免疫计划、哺乳仔猪的免疫和防治、仔猪育肥猪的免疫和防治、种猪的免疫和防治、种猪驯化抗体检测。
(5)生产测定功能模块。在生猪养殖过程中,需要管理员关心的不仅是目前正在饲养的生猪产量和成本,更是目前这些生猪的性状和它们后代的品性,对后备种猪进行性能测定和科学的评价可以为猪场选择更加优质的生猪品种。在小规模养猪场中,这些性状的测定也需要一定的专业知识,生产测定模块可以帮助管理员员从繁殖性状、育肥性状、酮体性状和肉质性状4 个方面科学的记录和评价生猪性能。生产测定包括种猪分级选淘、猪基因型测定、基因组测定、猪断奶个体体重测定、生长育肥测定、屠宰测定、质量形状测定、21日窝龄测定和体型外貌测定。
(6)猪场基础信息模块。猪场基础信息是猪场的超级管理员设置猪场基础信息的模块,里面包含有猪舍基础信息设置、猪栏基础信息设置、入库单和出库单信息设置以及库房盘点。
(7)其他事件功能模块。其他事件包含猪档案录入、猪场环境监测、生产目标制定、猪场饲喂、绑定电子耳牌和销售计划。管理员可以在这个模块中绑定猪的电子耳牌用来方便生猪信息的录入,猪场环境监测可以有效的控制和监测猪舍内的日常环境,保证猪舍内有一个良好的温度、湿度、通风环境等。
(8)统计分析功能模块。统计分析是生猪养殖管理平台中的一个重要模块,对于猪场来说,掌握了关键数据才能科学的指导生产、提高饲养管理的精准度、提高育种水平。数据是猪场的重要资料,与猪场业绩、利润和效益息息相关。传统的各种报表的制作费时费力,往往需要人工长时间来完成,统计分析模块利用数据自动生成报表,解放了人力。统计分析中的数据主要包含生产管理数据、日常成本开销数据和销售数据,其中生产管理数据占主要部分。主要包含综合统计报告、销售报表、饲料报表、免疫监测报表、死淘原因报表、工作计划、公猪报告、母猪报告和育肥猪报告。
3 关键支撑技术
3.1 总体架构
生猪养殖管理平台是一个基于Browser/Server(B/S)端的应用,与之对应的是基于Client/Server(C/S)端开发的应用。C/S 架构是一种比较早的开发模式,当客户需要时,下载一个应用就可以使用,分为客户端和服务器端两层。如图3 所示,由于其只有两层架构且一部分运算是在本地进行的,因此它的响应速度很快。C/S 端的适用面比较窄,一般用在局域网的特定用户,因此安全性较高。在开发C/S 端的应用程序时,需要针对某一种特定的操作系统,当应用要升级时,所有下载该应用的客户端都要升级[11]。
图3 C/S架构图Fig.3 C/S architecture
在B/S 的架构中,browser 指的是浏览器,前端(浏览器)仅实现少量的逻辑运算,主要的逻辑运算都放在后端(服务器)中进行。基于B/S架构的应用无需安装客户端,只需web 浏览器便可以访问。与C/S 架构不同的是,B/S 架构有三层,分别是表现层、逻辑层和数据层。如图4 所示,其中表现层是用户访问的界面,完成用户的输入和结果的输出,主要实现用户和数据库的交互;逻辑业务层的功能是实现应用逻辑的功能,负责调用函数对数据库中的数据进行增删改查等操作;数据层负责对数据的存储,并且提供逻辑业务层操作数据的接口[12]。
图4 B/S架构图Fig.4 B/S architecture
3.2 关键技术
本平台在B/S 架构的基础上采用Vue+Spring-Boot+MyBatis 的技术开发,这种技术组合模式是当前热门的技术组合形式,关键技术架构如图5所示。
图5 关键技术架构图Fig.5 Key technology architecture
Vue 是近些年使用的前端最热门的框架,它的使用大大提高了前端开发的效率和代码复用率,对比前端流行的其他框架Angular、React、Ploymer等,Vue采用的是构建用户界面的渐进框架,体验更加灵活、简单。同时,Vue还配有由饿了么推出的Element组件,让开发人员以更少的时间做更多的事。使用Vue 开发平台前端具有性能好、易优化、功能强大、过渡效果实现简单等特点[13]。
SpringBoot 是2013 年提出的用于JaveEE 编程的轻量级框架。Spring 框架使用在三层架构的逻辑业务层,体高模块之间的内聚,降低模块之间的耦合,但是其繁杂的XML 配置文件带给开发者不友好的体验,而SpringBoot免XML 配置,为问题提供了新的解决方案。可以说SpringBoot 是把框架集合到一起的框架,只要在开发中导入响应的依赖,就可以被使用。SpringBoot 两个最核心的技术是开箱即用和约定大于配置(按约定编程)。开箱即用技术使得在开发者省去了繁杂的XML 文件配置工作,开发者只需要在pom 文件中添加相关的依赖,SpringBoot 就会在开发中自动注入。约定大于配置减少了开发者需要做决定的次数,开发者只需要按照文件目录添加自己需要的信息,极大的增加了开发效率[14]。
在项目开发的过程中,不可避免地将数据存储在数据库中,因此,需要开发者在业务逻辑中和数据库中间对数据做增删改查(CRUD)操作。在Java中提供CRUD 操作的是JDBC 技术,但是JDBC 的使用会产生大量的重复性代码,增加代码的重复性。MyBatis框架是对JDBC 封装的集成了SQL 查询语句、存储过程和高级映射的持久层框架[15],它通过XML 配置的形式将Java 中的domain 对象与数据库中的记录进行映射。MyBatis 架构分为三层,配置层负责配置数据库连接、数据库连接池、加载配置文件等操作,数据处理层负责生成SQL 语句、将domain 对象和数据库记录进行映射、进行CRUD 操作等,API 层提供更加方便的数据库操作,使开发者在操作数据库时更灵活方便。
4 数据库设计
数据库设计是软件开发过程中重要的部分之一,关系着软件开发过程能否顺利推进,系统软件开发完成后能否正常运行[16]。在开发过程中如果数据库设计不合理,会造成后期维护难度大、代价大,会损失更多的人力财力资源,而合理的数据库设计不仅仅能保证系统的运行稳定,还能够提高计算机运行效率,降低后期维护成本[17]。
本系统采用的是传统稳定的MySQL 数据库,它是一款开源的数据库管理系统(DBMS),具有功能强大、使用简单、运行稳定等优点[18]。在项目开发过程中为了提高数据库运行效率,在数据库和表上开启了查询缓存、增加了字段索引等操作。由于本系统表结构较多,所以选取母猪事件管理表为例,描述部分表结构和字段,说明数据库设计,如图6所示。
图6 数据库设计图Fig.6 Database design
根据需求分析,设计了数据字段和数据表,以及表之间业务的关联。图6 展示的是母猪事件部分逻辑关系,将购买的母猪的信息录入猪个体档案中,猪个体档案登记表中记录本场所有猪的基本信息,猪个体号是主键,通过猪个体号关联其他业务表。在不同的阶段,不同情况的母猪可以制定不同的饲喂方案记录到母猪饲喂方案表中。兽医种猪免疫信息表和兽医种猪防治信息表是种猪在免疫或者治疗时记录的信息,也是通过猪个体号进行关联。母猪配种信息表、母猪妊娠信息表、母猪分娩表、母猪流产表等分别记录对应阶段的信息。
数据库中主要存储了猪场生产中产生的业务字段信息,该信息由人工录入或者后台业务逻辑自动计算得到。为了避免人工录入数据出现错误或者数据出现冲突,系统在业务逻辑方面设置了严格的约束限制。以母猪分娩为例,如图7所示。
图7 母猪分娩条件约束图Fig.7 Constraints on sow parturition conditions
在母猪分娩约束条件中,从后备母猪开始,分娩结束。首先业务逻辑要检查后备母猪是否诱情或者发情,如果有诱情发情信息则可以转入配种舍进行配种,否则禁止转入配种舍配种,母猪配种后转入妊娠舍,在妊娠过程中进行妊检操作,如果母猪流产后发情则转到配种舍进行再次配种,当母猪妊娠时间达到分娩要求,进行妊娠舍转到分娩舍的操作,母猪分娩后再次进入后备母猪阶段,符合配种要求的母猪继续进行配种。在生产过程中数据的录入均受到类似上述业务逻辑的约束,这种约束保证了数据的真实性,避免了数据冲突。
5 总结与展望
本文基于Vue+SpringBoot+MyBatis 设计了小规模生猪饲养管理系统,实现在对生猪的养殖、生育、购买、售卖、医疗保健、统计分析等管理。该系统平台实现了信息录入、信息查询、修改、导入导出等基本功能。经过测试,该系统平台能够正常运行,各功能的设计也符合小规模养猪场的需求,为小规模生猪饲养场管理信息化提供了技术支持和科学指导,节省了小规模养猪场人力成本开销,提升了利润空间。
同时也应该看到,该系统平台与智能养猪还有一定差距,今后可以在系统平台中加入智能化模块,比如精准自动饲喂、肉品质的无损检测、生猪疾病的预测与检测等[19]。智慧养猪管理平台涉及到计算机、畜牧业、物联网、兽医、经济学等多个学科,加强多学科融合协作是养猪智能化的必由之路[20]。智能养猪是未来养猪业的发展趋势,最终将实现养猪产业链的一体化、智能化。