葉有燦 周 艷 唐 煒 陸健東
(上海市農(nóng)業(yè)農(nóng)村委員會(huì)信息中心,上海市長寧區(qū) 200335)
自改革開放以來,上海市農(nóng)業(yè)科技的研究和發(fā)展取得了一定的成就,“科技+信息”成為了農(nóng)業(yè)走出去的“兩翼”,農(nóng)業(yè)信息化為上海都市現(xiàn)代綠色農(nóng)業(yè)的發(fā)展打下了扎實(shí)的基礎(chǔ)[1-2]。目前,上海農(nóng)業(yè)的發(fā)展既面臨著難得的發(fā)展機(jī)遇,又面臨著巨大的挑戰(zhàn)。如何在已實(shí)現(xiàn)小康的基礎(chǔ)上,不失時(shí)機(jī)地推進(jìn)農(nóng)業(yè)現(xiàn)代化建設(shè),及如何利用飛速發(fā)展的網(wǎng)絡(luò)信息技術(shù)為上?!叭r(nóng)”服務(wù)和發(fā)展上海都市現(xiàn)代綠色農(nóng)業(yè)已成為上海市促進(jìn)農(nóng)業(yè)發(fā)展急需解決的問題。在此背景下,隨著上海市民生活水平的提高,鄉(xiāng)村振興戰(zhàn)略的實(shí)施,上海“排頭兵”“先行者”作用的發(fā)揮,“上海菜籃子”的地位和要求被擺到了一個(gè)新的位置,上海市菜籃子工程信息系統(tǒng)應(yīng)運(yùn)而生?,F(xiàn)將上海市菜籃子工程信息系統(tǒng)的設(shè)計(jì)與應(yīng)用情況總結(jié)介紹如下,以期促進(jìn)該系統(tǒng)的進(jìn)一步應(yīng)用。
采用集成化的軟件構(gòu)造環(huán)境,全面實(shí)現(xiàn)信息系統(tǒng)跨部門構(gòu)建,注重系統(tǒng)的可擴(kuò)充性、可維護(hù)性、廣泛適應(yīng)性,形成菜籃子工程數(shù)據(jù)倉庫,充分利用業(yè)務(wù)部門主抓的田間地頭“第一手”資料的準(zhǔn)確性和權(quán)威性,為上?!叭r(nóng)”發(fā)展提供數(shù)據(jù)依據(jù),為領(lǐng)導(dǎo)決策提供科學(xué)的信息服務(wù)。
根據(jù)不同用戶身份(普通用戶、信息統(tǒng)計(jì)員、IT應(yīng)用主管、項(xiàng)目管理員、業(yè)務(wù)應(yīng)用主管)畫出總體需求例圖,寫出總體需求描敘,確定開發(fā)平臺(tái)。選擇應(yīng)用構(gòu)造器中間件Prop Web Builder進(jìn)行二次開發(fā),充分利用JAVA語言的一次編寫各處運(yùn)行的特點(diǎn),徹底保證平臺(tái)無關(guān)性[3]。
配合使用支持UML標(biāo)準(zhǔn)的面向?qū)ο蠼9ぞ逺ational Rose Enterprise Edition(當(dāng)今軟件開發(fā)較先進(jìn)的需求分析和邏輯設(shè)計(jì)的支撐工具)與基于Web的應(yīng)用構(gòu)造器中間件,以提高構(gòu)造應(yīng)用的應(yīng)用效果。同時(shí),通過UML中的類圖進(jìn)行系統(tǒng)邏輯設(shè)計(jì),畫出信息采集子系統(tǒng)包圖,進(jìn)一步畫出各子系統(tǒng)類圖,并編寫好表名、描敘、列名、數(shù)據(jù)類型、長度、小數(shù)位等。此外,根據(jù)各相關(guān)表之間的聯(lián)系,編號(hào)對(duì)應(yīng)的視圖,盡可能地減少冗余。
遵循功能分類科學(xué)準(zhǔn)確、主次功能劃分明確、重點(diǎn)功能突出且醒目的設(shè)計(jì)原則,確定菜單、主表單、子表單、功能按鈕的鏈接關(guān)系。
選用Oracle Database Server 10g數(shù)據(jù)庫,前臺(tái)JSP文件可通過JDBC驅(qū)動(dòng)程序連接后臺(tái)數(shù)據(jù)庫。
對(duì)數(shù)據(jù)源名稱、數(shù)據(jù)源連接、數(shù)據(jù)庫、用戶、JDBC驅(qū)動(dòng)程序、驅(qū)動(dòng)程序版本等進(jìn)行命名和確定,建好數(shù)據(jù)庫框架。
根據(jù)分析階段的邏輯設(shè)計(jì)所確定的表、視圖及其關(guān)系,建立表(定義表名、字段及其類型)和視圖(將相關(guān)的表通過關(guān)聯(lián)的字段連接起來)。
具體為:(1)設(shè)立首頁面,編輯首頁面。(2)根據(jù)要求構(gòu)建功能主表單、報(bào)表主表單、圖表主表單、綜合查詢主表單,并把表單和表、視圖捆綁起來。(3)根據(jù)主表單的要求建立子表單。(4)編輯對(duì)應(yīng)的表單,選擇性設(shè)立標(biāo)簽、按鈕、文本框、列表框、單選框、復(fù)選框、可選日期、自動(dòng)簽名、自動(dòng)日期、超鏈接、多媒體等欄目。(5)設(shè)置好欄目的物理位置關(guān)系,根據(jù)功能把它們與對(duì)應(yīng)表中的字段、子表單、系統(tǒng)時(shí)間、事件、主表單、功能模塊等有機(jī)聯(lián)系起來。
建立并確定主菜單和子菜單的位置關(guān)系,并對(duì)主表單定義功能點(diǎn),通過功能點(diǎn)將主表單和基礎(chǔ)菜單聯(lián)系起來。
建立綜合查詢模塊,構(gòu)建主表區(qū)綜合查詢中涉及到綜合查詢模塊,并通過視圖將表、字段聯(lián)系起來,最終根據(jù)需要交互式地完成綜合查詢功能。
建立報(bào)表模塊并設(shè)置報(bào)表格式(表頭、行高、列寬和表尾),確定報(bào)表與視圖的鏈接關(guān)系。構(gòu)建報(bào)表中的各元素,包括行變量、列變量、統(tǒng)計(jì)變量等,并設(shè)置它們的位置關(guān)系,最后通過視圖將它們和表中的字段聯(lián)系起來,最終根據(jù)需要對(duì)應(yīng)生成各種圖表。
要建立圖表功能模塊,首先需建立指標(biāo)體系,即建成由描敘指標(biāo)和絕對(duì)指標(biāo)共同構(gòu)成的樹型指標(biāo)體系。圖表的基礎(chǔ)數(shù)據(jù)來源于絕對(duì)指標(biāo),絕對(duì)指標(biāo)則反映了視圖、表、計(jì)算公式、字段等最基本的數(shù)據(jù)屬性,可通過提取指標(biāo)量,指定X軸、Z軸,生成圖表。
具體為:(1)建立用戶部門管理體系,即建立樹型的用戶部門和人員結(jié)構(gòu),用戶口令采用明碼、密碼、加密算法的多重保護(hù)。(2)建立角色權(quán)限管理體系,即建立不同的角色,確定角色與功能點(diǎn)間的聯(lián)系,一個(gè)角色設(shè)有多個(gè)功能點(diǎn)(功能點(diǎn)在主表單建立時(shí)已設(shè)置好,與基礎(chǔ)菜單間存在著一一映射的關(guān)系)。(3)建立表單權(quán)限管理體系,即對(duì)每個(gè)表單選擇操作角色,并根據(jù)角色不同選擇設(shè)置表單內(nèi)各元素(字段或功能按鈕)的權(quán)限(包括可寫、只讀、無權(quán)限)。(4)建立用戶權(quán)限管理體系。即給不同部門的人員選擇各自的角色,且用戶菜單動(dòng)態(tài)合成,使不同的用戶擁有不同的功能菜單,從而符合安全性設(shè)計(jì)的“不知道的最安全”原則。
管理員是普通用戶的特例,是能通過瀏覽器查看、操作所有菜單、表單、功能鏈接的內(nèi)容的用戶,其他用戶則根據(jù)管理員分配的權(quán)限,通過瀏覽器查看、操作所分配的菜單、表單、功能鏈接的內(nèi)容。
上海市菜籃子工程信息系統(tǒng)有8個(gè)主菜單,每個(gè)主菜單下有若干個(gè)子菜單項(xiàng),一共有50余個(gè)子菜單項(xiàng)。每個(gè)子菜單項(xiàng)連接一個(gè)主功能塊。
4.2.1 主功能塊
主功能塊從上到下由菜單區(qū)(功能塊圖標(biāo)、菜單)、主表表體區(qū)(表格的行變量、列變量、時(shí)間等查詢條件)、主表表尾區(qū)(新增、刪除、刷新、查詢、報(bào)表、圖表、綜合查詢、隱藏或顯示查詢條件等按鈕)、子表表體區(qū)(顯示具體內(nèi)容、修改內(nèi)容的鏈接、前后翻頁按鈕)等部分組成。其中,菜單區(qū)的菜單提供各主菜單間的聯(lián)系,主表表體區(qū)的按鈕又鏈接若干個(gè)子功能塊,每個(gè)主功能塊的縱向和橫向的鏈接連接著整個(gè)系統(tǒng)。
4.2.2 新增子功能塊
新增子功能塊從上到下由主表表體區(qū)(表格的行變量、時(shí)間等輸入項(xiàng))、子表表體區(qū)(表格的列變量、表格的具體數(shù)據(jù))、子表表尾區(qū)(保存、關(guān)閉按鈕)等部分組成。
4.2.3 刪除子功能塊
刪除子功能塊位于主功能塊的子表表體區(qū),選中要?jiǎng)h除記錄前面的標(biāo)志位,點(diǎn)擊刪除即可刪除該條記錄。
4.2.4 查詢子功能塊
查詢子功能塊位于主功能塊的主表表體區(qū),選擇行變量、列變量,錄入時(shí)間變量,點(diǎn)擊查詢,即可查選出符合條件的記錄,并可顯示在子表表體區(qū)。
4.2.5 報(bào)表子功能塊
報(bào)表子功能塊從上到下由菜單區(qū)(菜單)、主表表體區(qū)(輸入報(bào)表時(shí)間)、主表表尾區(qū)(確定、打印、返回等按鈕)三部分組成。確定按鈕連接報(bào)表,報(bào)表提供明細(xì)列表、累計(jì)匯總、平均值、同期量、同期比、累計(jì)本期值等功能。
4.2.6 圖表子功能塊
圖表子功能塊從上到下由菜單區(qū)(菜單)、主表表體區(qū)(表格的行變量、時(shí)間項(xiàng))、子表表體區(qū)(表格的列變量)、子表表尾區(qū)(確定、取消按鈕)等部分組成。其中,各行變量、列變量可單選也可多選。確定按鈕連接圖表,圖表提供圖表、圖、表、切換圖表布局、三維柱狀圖、平行柱狀圖、曲線圖、帶狀圖、返回、取消等功能。
4.2.7 綜合查詢子功能塊
綜合查詢子功能塊從上到下由菜單區(qū)(菜單)、主表表體區(qū)(表格的行變量、列變量、時(shí)間、查詢子標(biāo)量范圍等項(xiàng))、主表表尾區(qū)(查詢、設(shè)置列表字段、只顯示列表按鈕)等部分組成,用戶可根據(jù)自己需要,隨時(shí)設(shè)置查詢條件和顯示方式。其中,行變量、列變量可自行設(shè)定。以上海市蔬菜價(jià)格為例,行變量可定為區(qū)縣市場,列變量可定為蔬菜價(jià)格,價(jià)格范圍即為查詢子標(biāo)量范圍。點(diǎn)擊查詢按鈕,符合條件的內(nèi)容將顯示在子表表體區(qū),內(nèi)容超過一頁時(shí)將會(huì)自動(dòng)分頁。設(shè)置列表字段按鈕可定義要顯示的字段和排列順序。只顯示列表按鈕將會(huì)隱藏或顯示其他除列表以外的內(nèi)容。
上海市菜籃子工程信息系統(tǒng)經(jīng)過幾年的應(yīng)用,已延伸到上海9個(gè)涉農(nóng)區(qū)200多家蔬菜園藝場、80多家標(biāo)準(zhǔn)化生豬養(yǎng)殖場、10多家奶牛場、8個(gè)市境道口。系統(tǒng)用戶包括市區(qū)兩級(jí)種業(yè)、種植業(yè)、蔬菜、畜牧獸醫(yī)、漁業(yè)、市境道口等部門的管理人員以及規(guī)模園藝場、養(yǎng)豬場的生產(chǎn)人員350余人,用戶可按照實(shí)時(shí)、日、周、月、年等頻率填報(bào)和審核各類信息。截至2019年底,上海市菜籃子工程信息系統(tǒng)匯聚了上海地產(chǎn)豬禽蛋奶菜的產(chǎn)銷信息和道口流通信息700萬條以上,對(duì)畜禽產(chǎn)品的免疫和用藥,以及種植業(yè)中的種子、化肥和農(nóng)藥的使用,起到了很好的監(jiān)管作用,有效保障了上海菜籃子工程的源頭安全,積極地實(shí)踐了上海規(guī)模化地產(chǎn)農(nóng)產(chǎn)品從田頭到餐桌的全程監(jiān)管。