查文君 汪 浩,2 劉 敏 呂成軍 邰偉鵬,2 黃 旭
1.安徽工業大學信息技術研究院,安徽馬鞍山243002;2.安徽工業大學計算機科學與技術學院,安徽馬鞍山243032;3.天邦食品股份有限公司,上海200233;4.武漢中畜智聯科技有限公司,武漢430100
近年來,隨著生豬養殖的快速增長,生豬養殖朝著規模化、標準化的方向發展,對于促進畜牧業發展有著重要意義[1-2]。與傳統生豬養殖業相比,將信息技術引入到生豬養殖中,能夠大幅度提高生豬養殖業的生產效率[3-6],打造智慧養殖模式,能夠更加便捷、準確、高效地管理豬只生產過程,通過數據分析對養殖生產還能起到指導性的作用。另外,隨著生活質量的提高,豬肉安全問題也成為人們關注的核心,我國的養豬業雖然在數量上能夠滿足人們的需求,但在肉質上已不能完全滿足人們的需求,也還有極少數豬肉產品在安全性方面存在一些問題[7-8]。目前,一些大型的養殖場已基本實現了機械化自動化的養殖方式,但是保障豬肉全產業鏈的安全,還需要完善的養殖記錄、獨立的豬只檔案等[9]。通過信息化的方式,實現一豬一碼,能夠快速精準追溯豬只生產信息,為豬肉的質量安全提供保障。
綜上所述,采用軟件工程的思想,設計并實現了規模化生豬養殖生產系統。對于規模化系統的設計,傳統的集中式數據庫模式存在性能瓶頸問題,因此采用分布式架構[10-11]。本系統的意義主要體現為以下幾點:
1)提高生產效率。系統提供移動端(包括移動手機和手持機)和主端多種方式進行數據采集,其中家庭農場主要采用移動端對生產進行管理,降低對農戶信息化水平的要求,種豬場通過手持機掃描電子耳標導出生產信息,直接對接導入生產系統主端,降低人工采集數據的工作;系統根據已有的生產數據,對生產進行預測和預警,并生成詳細的生產報表,為生產和管理提供數據分析;系統實現了生產業務與財務系統的實時對接完成業財一體化,提升了賬務信息準確率,降低了財務風險;系統采用電子耳標結合移動設備技術,實現數據采集自動化和數據分析智能化。
2)保障豬肉質量安全。通過對生產流程的控制,形成精準完善的養殖記錄,建立豬只檔案,利用電子耳標和二維碼技術實現豬只身份的唯一性和豬肉的可追溯性,保證豬肉的質量安全。
基本信息包括生產人員、人員角色、公司部門崗位、養殖場和豬品種。其中,用戶可以擁有多重角色和多重崗位,不同的崗位和角色具有不同的數據權限;公司、部門、崗位存在的上下層所屬關系均采用樹形結構配置。
規模化養豬場的生產由家庭農場和種豬場完成,生產過程中豬只數量的變化,耗料情況等需要與財務系統對接。家庭農場主要完成育成豬階段的養殖,該階段的豬只一般都是分批次進行管理,即相同生產狀態的豬只放入同一批次進行統一管理。家庭農場位置分布零散且農戶信息化水平一般,因此主要通過移動端實現批次的采購、耗料、調撥、銷售、死亡、自宰和淘汰管理。種豬場主要完成具有生產能力的種母豬養殖,該階段的豬只因其生產能力和所處的生產階段各不相同,需采用個體管理方式,增加唯一的電子耳標,建立對應的豬只檔案。種豬包括種母豬和種公豬,其中種公豬的生產過程相對簡單,主要用來完成生產精液功能,而種母豬的生產過程非常復雜,下面就種母豬的生產過程進行詳述。
培育豬一般飼養到160 d 或者體重達到100 kg,就可以劃分為后備母豬,后備母豬一般在后備舍中飼養進行個體管理,個體具有唯一的耳號和檔案。后備轉生產之后,按照所處的不同生產時期,其生產狀態可劃分為:生產母豬、發情、已配種、流產、空懷、返情、哺乳母豬、斷奶。對發情的豬只做記錄,跟蹤發情記錄可以及時配種,每頭母豬一般配種2次,最多配種3 次。對于后備母豬,需要先進行后備轉生產操作,將豬只的生產狀態由后備母豬轉為生產母豬,才能做配種記錄,配種之后豬只狀態轉變為已配種;對于已進行過1 次生產的豬只,不需要做后備轉生產操作,可進行查情或配種操作,從而進入再生產過程。在豬只配種后,就認為其進入妊娠狀態,但是,在分娩前這段時間,仍然可能出現非正常情況,需要將情況記錄下來,即在生產系統中,做妊娠檢查記錄,妊檢結果分為:空懷、返情、流產,生成妊娠檢查單。在做妊娠檢查記錄后,豬只生產狀態轉變為空懷、返情或流產,根據妊檢結果來定。發生空懷、返情和流產情況的豬只,可以再進行查情、配種等操作。一般在轉生產之后,分娩之前的豬只飼養在妊娠舍。豬只妊娠期為114 d,考慮后期分娩管理,會在預產期前2 d,即妊娠期達到112 d 的時候,將豬只從妊娠舍轉入分娩舍,到預產期,豬只分娩的時候,會將分娩的實際情況記錄下來。母豬在分娩后,實際飼養過程中,可能并不能飼養全部仔豬,這時需要將仔豬寄出,由其它母豬飼養。在生產系統中,做寄出記錄,生成寄出單。對哺乳母豬A做仔豬寄出操作后,相應的,其仔豬應由其它哺乳或斷奶狀態的母豬B,繼續哺乳喂養,在生產系統中做寄入記錄,生成寄入單。整個寄出、寄入過程,系統需保證寄出的數量等于所有寄入的數量。對于性狀較好,生長體況也較好的仔豬,可能會將其選做培育母豬,因此會對其標記。在生產系統中,對于這類仔豬,會進行留種記錄,給予仔豬1 個唯一標識的耳牌號(由窩號和仔豬個體號組成),生成留種單。在仔豬生長轉為后備豬,進行入場操作的時候,輸入后備豬耳牌號,可以獲取到相關信息。仔豬飼養到21 d 的時候,可以進行斷奶操作,斷奶后的仔豬進入到批次中進行后續的飼養,斷奶后的母豬轉入妊娠舍,開始下一輪的生產。
以上是種母豬在場內的生產過程,種母豬出場有4 個走向,分別是銷售、調撥、死亡和自宰。銷售,按照豬只類別,可以分為后備豬銷售和淘汰種豬銷售。在生產系統中,選擇后備或淘汰種豬銷售,記錄時,進一步選擇銷售品種和銷售類型,生成后備或淘汰種豬銷售單。在進行淘汰種豬銷售記錄前,要對種豬進行淘汰記錄,生成種豬淘汰單,對于不具有生產能力的后備豬可以直接進行淘汰,對于生產母豬一般根據歷史生產成績選擇性進行淘汰。調撥,在生產系統中,選擇是調撥至養殖場還是調撥至家庭農場,生成調撥單。死亡,在生產系統中,對于死亡的種豬需要做種豬死亡記錄,生成種豬死亡單。自宰,在生產系統中做自宰記錄,生成自宰單。上述過程如圖1 所示。
報表主要對家庭農場、種豬場的生產成績和存欄進行多維度的分析,每日、每周、每月、每年都要生成分析報表。其中家庭農場主要包括服務部生產報表、異常養戶報表和省生產報表等;種豬場主要包含種母豬生產成績、生產成績總結月和單場日報等。報表需要展示一些重要的指標如生產母豬存欄、受胎率、妊娠天數、分娩的產仔情況、斷奶數量、哺乳天數、首次配種至再配種的天數、斷奶至配種的天數、死亡率、淘汰率等。
本系統采用分布式架構模式。整體技術架構采用主端前后臺完全分離方式,移動端采用Cordova混合模式實現前后臺分離,其中系統的整體事物邏輯主要實現場所在服務器端,少數的事務邏輯則是通過瀏覽器或移動前端實現[12];數據庫的部署分為主庫和從庫,采取主從讀寫分離模式;系統的核心層提供數據庫訪問接口以及模型定義。系統體系結構圖如圖2 所示。
規模化生豬養殖生產系統包含5 個模塊:基礎信息模塊、生產管理模塊、生產監測模塊、電子耳標模塊、報表模塊。系統功能結構圖如圖3 所示。
1)基礎信息模塊。基礎信息包含用戶管理、角色管理、組織架構管理、養殖場管理和豬品種管理5個子模塊。

圖1 種母豬生產過程

圖2 規模化生豬養殖生產系統體系結構
用戶管理:提供用戶信息頁面,展示系統所有用戶的基本信息。頁面具備增加、刪除、修改功能,頁面信息包含用戶名、姓名、手機號、公司、部門、崗位、默認角色等信息,可按照姓名、用戶名、手機號等快速查詢。
角色管理:角色管理主要包括2 個功能。第一,增加、刪除、修改系統內的角色,角色包含角色編碼和角色名稱等基本信息;第二,角色權限管理,不同的角色能夠訪問和操作的數據權限不同,可以通過角色權限管理頁面動態設置調整不同角色的權限。
組織架構管理:組織架構管理包括公司管理、部門管理和崗位管理3 個頁面。在公司管理頁面通過增加按鈕新建一個公司,其中公司名稱、單位性質和類型是必填項。新建公司成功之后,在部門管理頁面,首先選擇公司信息,然后點擊增加按鈕,填寫表單信息,點擊確定按鈕給所屬公司新建一個部門。部門新建成功之后,在崗位管理頁面,同樣通過增加按鈕,填寫表單信息,給所屬部門增加一個崗位。對于已經建立好的公司、部門和崗位信息,可以通過對應頁面的刪除和修改按鈕進行刪除和修改操作。
養殖場管理:養殖場管理頁面不僅能夠新增養殖場,還能新增養殖場下的生產線和棟舍。具體的邏輯根據用戶的選擇而不同,若用戶沒有選擇到具體的養殖場,點擊增加按鈕,則彈出新建養殖場表單;若用戶選擇了具體的養殖場,點擊增加按鈕,則彈出新建生產線表單;若用戶選擇了具體的生產線,點擊增加按鈕,則彈出新建棟舍表單。
豬品種管理:提供用戶管理系統內豬只的品種功能。頁面包含增加、修改和圖譜按鈕。通過增加按鈕添加豬只品種;修改按鈕修改豬只品種信息;圖譜按鈕查看豬只的父系和母系的品種。
2)生產管理模塊。生產管理模塊包含家庭農場管理、種母豬管理和種公豬管理3 個子模塊。
家庭農場主要包括批次信息和批次操作管理,若批次發生采購、耗料、調撥、銷售、死亡、自宰和淘汰操作,對應的批次數量要發生變化。
種母豬管理主要包括豬只檔案及豬只生產過程管理。豬只的生產過程主要包括入場、轉生產、查情、配種、妊檢、分娩、寄入、寄出、留種、斷奶、調撥、銷售、死亡、淘汰、自宰和轉舍。
豬只檔案頁面是種母豬的綜合信息頁面,包括母豬的基本信息、母豬檔案卡和母豬事件信息。用戶在頁面左邊通過組織架構信息選擇到養殖場后,左邊將以樹狀圖方式展示用戶選擇的養殖場、生產線和棟舍信息。用戶點擊養殖場則展示養殖場內所有的豬只;點擊生產線則展示該養殖場內對應生產線的所有豬只;點擊棟舍則展示該養殖場生產線內對應棟舍的所有豬只。頁面右邊分為上下2 部分,上部分用于信息篩選、入場按鈕、查看母豬詳情、導出母豬檔案卡功能,下部分展示豬只列表。信息篩選包括對生產狀態、在離場、狀態天數、豬只耳號、品種、品系、電子耳號、出生日期時間范圍和胎齡區間9 個方面的篩選。選擇豬只列表中的某頭豬,點擊詳情按鈕,能夠展示豬只的所有基本信息和事件信息,其中事件信息是豬只的生產流水信息,包括發生生產流水的單據日期、操作日期、日齡、事件、是否撤銷、摘要和操作人信息。在事件信息頁面提供撤銷按鈕,用于撤銷未發生的生產流水。

圖3 規模化生豬養殖生產系統功能結構
種母豬的生產過程根據其生產階段對應通過16 個小模塊實現,每個模塊在頁面布局上相似,均有2 個頁面,第1 個頁面是記錄展示頁面,第2 個頁面是數據錄入頁面。第1 個頁面的左邊都是養殖場、生產線和棟舍3 層樹狀結構供用戶選擇,頁面的右邊分為上下2 個部分,上部分用于信息篩選功能,下部分展示生產操作記錄列表。第2 個頁面分為上下2 部分,上部分有保存、刪除、添加和批量導入按鈕。保存按鈕生成對應的記錄單;刪除按鈕刪除選中的記錄;添加按鈕添加1 行新的記錄行;批量導入按鈕,讀取Excel 文件并將文件內容導入到系統中,用戶可對導入的內容再次進行編輯和刪除操作。
種公豬的頁面設計及功能與種母豬類似,但其生產過程較簡單,主要包括入場、轉生產、調撥、銷售、死亡、淘汰、自宰和轉舍。
3)生產監測模塊。生產監測分為生產預測和生產預警2 個子模塊。
生產預測共有2 個頁面,第1 個頁面上半部分提供設置預計天數和查詢按鈕,下部分展示在預計的天數之后將發生配種、分娩、斷奶和淘汰的豬只數量。
預測配種數量分2 種情況。第1 種,處于生產、發情、空返流狀態的豬只,狀態日期在預計日期之前的都計入總數;第2 種,處于斷奶狀態的豬只,狀態日期和預計日期相差大于等于3 d 的都計入總數;預測分娩數量,統計處于已配種和妊娠狀態的豬只,狀態日期和預計日期相差大于等于110 d 的都計入總數;預測斷奶數量,處于哺乳母豬狀態的豬只,狀態日期和預計日期相差大于等于23 d 的都計入總數;預測淘汰數量,只要母豬的狀態非淘汰、死亡和自宰狀態并且胎齡大于等于7 胎的都計入總數。
4)電子耳標模塊。電子耳標模塊包括采購入庫、領用、歸還入庫、戴標、調撥和自動耗料6 個功能,通過耳標明細、耳標入庫和耳標出庫3 個頁面實現全部功能,其中戴標和自動耗料功能由系統提供接口,使用手持機掃描上傳完成。戴標接口的輸入包括電子耳標號、母豬耳號和戴標時間等信息,接口上傳成功則輸出成功信息并生成戴標記錄,若失敗則輸出具體的原因。在飼喂設備上裝電子耳標識讀器,當豬采食可以讀到耳標,手持機自動采集耗料數據通過接口傳到生產系統,自動耗料接口的輸入信息包括電子耳號和耗料量等,接口上傳成功生成自動耗料單,若失敗則輸出具體原因。
5)報表模塊。報表模塊根據原始數據對生產指標進行計算,將最終的結果展示給用戶,本模塊包含家庭農場報表、母豬場報表和公豬站報表3 個子模塊。每個子模塊都具有查找和導出功能,頁面布局相似,頁面分為上下2 個部分,上部分主要是養殖場和時間等其他條件的篩選功能,用戶點擊查詢按鈕則生成對應的報表,若點擊導出按鈕,則將生成的報表以Excel 文件形式導出到本地。
本系統使用MySQL 數據庫,并且使用主從同步技術保證數據的一致性。MySQL 數據庫是一種開放源代碼的關系型數據庫管理系統,用戶在GPL(general public license)協議下可以按照自己的需求進行修改。MySQL 數據庫使用標準的SQL 語言,并且提供多種開發語言的API,為開發人員的使用提供了便捷。

圖4 規模化生豬養殖生產系統E-R
E-R 圖即實體和關系圖,E-R 圖的建立是數據庫開發的基礎。E-R 圖主要有實體、屬性和關系3個部分,其中實體用矩形框表示、屬性用橢圓表示、關系用菱形表示。本系統E-R 圖如圖4 所示。
系統數據庫的數據表共有上百張,其中重要的豬只檔案表如表1 所示。
根據上述的需求分析及系統設計,系統已開發完成并在某上市集團公司使用,目前系統內該集團的存欄量已達上百萬頭,其中生產母豬存欄30 萬頭,培育母豬15 萬頭,豬只操作事件數據量已達上千萬條。系統實現了家庭農場和種豬場各個生產環節全方位的監控,并形成精準完善的養殖記錄,建立豬只檔案,實現1 豬1 碼,通過實現豬只身份的唯一性和豬肉的可追溯性保證了豬肉的質量安全;系統通過數據分析為生產提供了實時的監測和報表分析功能,成功地提高了集團的生產和管理效率。系統主要界面豬只檔案界面如圖5 所示。
本文通過深入調查研究規模化生豬養殖業務流程,詳細設計了系統的體系結構和功能模塊,實現了基于分布式架構的規模化生豬養殖生產系統。本系統通過多種信息化方式的數據采集和精準的流程管理,極大地提高了規模化生豬養殖的生產效率并為生產和管理提供了數據分析,對豬只建立了完善的檔案并結合電子耳標和二維碼技術實現了豬只的溯源,為保障豬肉安全做出了一定的貢獻。
本系統仍在不斷地優化和改進,后期版本可實現以下功能。第一,本系統報表模塊的生成速度仍有可提升的空間,后期版本將實現快速報表;第二,本系統報表模塊為定制化報表,后期版本可實現用戶自定義報表;第三,本系統部分生產過程信息的采集沒有實現零人工參與,后期版本可實現所有生產信息通過手持機直接對接系統,無需人工操作;第四,本系統的豬只信息僅在生產系統內部,后期版本可提供消費者界面,為豬肉信息實現更大的透明化。

表1 豬只檔案

圖5 豬只檔案界面