文/張沖
隨著國家“互聯(lián)網(wǎng)+政務服務”應用的不斷改革和深化應用,在推進過程中,服務模式從“單辦件模式”擴大到“聯(lián)辦件”再到“綜合一窗”“跨省通辦”和“一業(yè)一證”業(yè)務模式,服務載體也從政務大廳的獨立窗口到現(xiàn)在的網(wǎng)站、自助終端、移動端等多終端多渠道辦理模式。線上辦理事項越來越多,信息化系統(tǒng)建設規(guī)范越來越高,建設周期要求越來越短,在系統(tǒng)不斷深化、重構的過程中,發(fā)現(xiàn)有很多工作量都集中在事項受理表單的開發(fā)上,并且隨著“引導式業(yè)務辦理”的交互方式推行,以及單事項到綜合事項的推廣應用,受理表單的展示要素也隨著事項、情形的不同而動態(tài)變化。
自國務院印發(fā)《關于加快推進“互聯(lián)網(wǎng)+政務服務”工作的指導意見》,對加快推進“互聯(lián)網(wǎng)+政務服務”工作作出總體部署以來,經(jīng)歷了近5年的系統(tǒng)建設歷程,“互聯(lián)網(wǎng)+政務服務”發(fā)展迅猛,由剛開始承接幾十個類型辦件到如今的成百上千種類型辦件;由原來的“單一辦件”到“聯(lián)辦件”“綜合辦件”類型發(fā)展;由原來只能實現(xiàn)“一個縣域內”辦件到“一個市”“一個省”甚至“跨省通辦”的業(yè)務模式變化;由原來的“只能大廳窗口辦理”擴充到“網(wǎng)站”“綜合窗口”“自助終端”“app”多渠道辦理。
系統(tǒng)業(yè)務越來越復雜,事項類型越來越多,系統(tǒng)規(guī)模也逐漸從單一系統(tǒng)向平臺級(市級、省級、全國級)方向發(fā)展。雖然系統(tǒng)規(guī)模和業(yè)務越來越復雜,但其核心內容是事項及事項辦理以及多渠道發(fā)布。因此在支撐系統(tǒng)迭代研發(fā)當中,需要把“事項梳理”單獨作為一個平臺進行建設,而事項梳理完成后要實現(xiàn)因事項類型不同、交互情形不同、辦理渠道不同而受理表單不同,就需要一個可定制的電子表單系統(tǒng)來支撐。
因此,需要總結、歸納一套能夠實現(xiàn)“無需代碼編寫”“圖像化設計”“自動化存儲”的電子表單系統(tǒng),作為基礎支撐平臺的一部分,從而縮短研發(fā)周期,快速提供信息化服務。
電子表單系統(tǒng)技術架構如圖1所示,采用j2EE開發(fā)技術,采用B/S架構研發(fā)。系統(tǒng)后端技術主要采用Spring、SpringBoot和SpringCloud開發(fā)框架,引入Redis做緩存組件,MySQL作為存儲數(shù)據(jù)庫。前端采用主流開發(fā)框架VUE技術,基于Node.js+Webpack開發(fā)平臺,引入ElementUI作為產(chǎn)品的基礎控件庫,在此基礎上,定制豐富的電子表單控件庫。最后使用上述后端和前端開發(fā)成果,研發(fā)電子表單系統(tǒng)的產(chǎn)品功能和供三方系統(tǒng)二次開發(fā)使用的表單接入控件。
圖1 電子表單系統(tǒng)技術架構圖
電子表單系統(tǒng)邏輯架構如圖2所示,核心內容分為表單設計系統(tǒng)、表單系統(tǒng)網(wǎng)關和表單接入控件。表單設計系統(tǒng)是提供圖形化設計能力的系統(tǒng)。該系統(tǒng)分為:表單配置元數(shù)據(jù)庫,用于存儲設計過程數(shù)據(jù);控件庫,提供豐富的表單展示要素的控件,它是實現(xiàn)多樣化表單定制的基石,支持后期添加擴展;數(shù)據(jù)庫連接,用于定義表單填報數(shù)據(jù)存儲數(shù)據(jù)庫的連接信息;存儲對象,定義表單數(shù)據(jù)存儲到具體表的元數(shù)據(jù)信息,是實現(xiàn)表單填報數(shù)據(jù)自動存儲的基石;表單設計器,它是一個圖像化的,支持可拖拽功能表單設計器,它使用控件庫里的控件定義表單每個填報要素,同時通過屬性面板,定義控件展示樣式、與存儲對象字段對應關系,定義完成后,生成一個表單描述文件(json格式),然后存儲到表單配置元數(shù)據(jù)庫中。表單系統(tǒng)網(wǎng)關是電子表單系統(tǒng)為接入系統(tǒng)定制的、可供二次開發(fā)的接口服務方法。接入系統(tǒng)通過調用表單系統(tǒng)網(wǎng)關的服務來獲取表單配置數(shù)據(jù)和實現(xiàn)填報數(shù)據(jù)的自動存儲。表單接入控件是電子表單系統(tǒng)為接入系統(tǒng)提供的表單接入sdk,它提供iframe整頁接入和使用VUE組件2種接入方式。它使用表單系統(tǒng)網(wǎng)關服務接口從電子表單系統(tǒng)中獲取表單定義數(shù)據(jù),然后解析展示表單界面。
圖2 電子表單系統(tǒng)邏輯架構圖
電子表單系統(tǒng)由表單模板管理、接入系統(tǒng)管理、成員管理、存儲對象管理、表單設計管理、表單發(fā)布和表單接入功能組成。
用戶進入電子表單系統(tǒng)后進入表單模板模塊,為系統(tǒng)添加公共表單模板。系統(tǒng)發(fā)布時,根據(jù)產(chǎn)品設計風格,初始化多套系統(tǒng)模板,系統(tǒng)模板后期不允許用戶修改。用戶可以根據(jù)項目需求,創(chuàng)建電子表單模板,自定義的模板可以修改或刪除。模板定義好后,可以在表單設計時引用“表單模板”,表單會復制表單模板的全部屬性生成表單,用戶再在此基礎上進行調整、修改。
用戶在自己的系統(tǒng)中需要使用電子表單時,需要先在電子表單系統(tǒng)中新建一個接入子系統(tǒng),子系統(tǒng)的信息包括接入系統(tǒng)名稱、系統(tǒng)架構、維護人員等,電子表單系統(tǒng)會自動為接入子系統(tǒng)創(chuàng)建生成訪問key信息,用戶在自己的系統(tǒng)中接入表單的時候,需要正確填寫相應的key才能集成成功。為了方便管理,支持在接入子系統(tǒng)的下級創(chuàng)建相應的模塊,然后在模塊中創(chuàng)建接入表單。
用戶在開發(fā)表單系統(tǒng)時,通常不希望自己項目組的表單被項目組以外的人訪問和修改。同時項目組開發(fā)表單的人也可能會有多個。為了解決這個問題,電子表單系統(tǒng)提供了成員管理的功能,用戶可以在自己定義的子系統(tǒng)中,添加參與設計表單的成員,成功添加的成員都能訪問且能修改此接入系統(tǒng)的所有表單。
當用戶在使用表單填報數(shù)據(jù)時,要能實現(xiàn)數(shù)據(jù)自動保存。用戶可以為其接入子系統(tǒng)定義數(shù)據(jù)庫連接,連接到用戶想保存數(shù)據(jù)的數(shù)據(jù)庫,然后用戶再建一個存儲對象,創(chuàng)建時,選擇你創(chuàng)建的數(shù)據(jù)庫連接,然后從連接的數(shù)據(jù)庫表中,選擇將要把表單數(shù)據(jù)存儲的表,系統(tǒng)自動創(chuàng)建一個關聯(lián)具體存儲表的數(shù)據(jù)對象。在后續(xù)的表單設計中,引入這個存儲對象,并做好存儲對象屬性與表單控件關聯(lián),實現(xiàn)表單的自動存儲。
用戶通過表單設計器對表單進行設計操作,表單設計器左邊是控件工具箱,中間是主設計區(qū),右邊是屬性設置區(qū)。用戶從控件工具箱中拖拽所需控件到中間主設計區(qū),然后在右邊屬性欄中設置相應屬性,完成表單設計。在這個過程中,系統(tǒng)自動提醒用戶選擇存儲對象,然后完成表單每個控件與存儲對象屬性的關聯(lián)設置,完成填報數(shù)據(jù)自動保存功能。
表單設計完成后,用戶可以點擊設計器的“預覽”按鈕,預覽表單展示效果。用戶確認無誤后,點擊發(fā)布,系統(tǒng)將用戶設計的表單生成最新版本。發(fā)布后,設計的表單就可以被接入所需的業(yè)務系統(tǒng)中。
電子表單系統(tǒng)為外部系統(tǒng)提供2種接入方式,一種是iframe方式(非VUE項目),一種是VUE組件方式。
在信息化系統(tǒng)建設過程中有許多場景需要使用電子表單才能更方便地解決問題。電子表單系統(tǒng)特別適用于表單數(shù)量多、后期新增需求不固定和因上下文條件變化引起表單展示要素變化的業(yè)務場景,可以有效減少開發(fā)工作量,提升產(chǎn)品適應需求變化的能力。