王紅剛,付耀鋒,王艷娥,王征風(fēng)
(1.西安思源學(xué)院,陜西 西安 710038;2.西北有色金屬研究院,陜西 西安 710016)
科技信息資源是科學(xué)技術(shù)再發(fā)展的重要基礎(chǔ)??萍夹畔①Y源共享服務(wù)平臺(tái)是一個(gè)國(guó)家科學(xué)技術(shù)基礎(chǔ)條件建設(shè)的重要內(nèi)容之一,對(duì)促進(jìn)科學(xué)技術(shù)的發(fā)展具有極其重要的作用[1-3]。《陜西省“十三五”科學(xué)和技術(shù)發(fā)展規(guī)劃》中明確指出要大力推進(jìn)科技資源的開(kāi)放與共享,建立科技資源開(kāi)放共享平臺(tái)[4]。陜西省是中國(guó)鈦鋯鉿有色金屬材料研究和制造的大省,鈦鋯鉿金屬材料的生產(chǎn)和銷售占全國(guó)80%的份額,如何在“一帶一路”國(guó)家戰(zhàn)略層面引領(lǐng)下,結(jié)合互聯(lián)網(wǎng)+有色金屬行業(yè)對(duì)鈦鋯鉿戰(zhàn)略材料進(jìn)行深度營(yíng)銷,促進(jìn)有色金屬行業(yè)的健康、快速發(fā)展,是該行業(yè)急需研究的熱點(diǎn)問(wèn)題。
JEECG是一款基于代碼生成器的智能開(kāi)發(fā)平臺(tái)[5],采用Java語(yǔ)言,支持敏捷開(kāi)發(fā),使開(kāi)發(fā)者專注于具體業(yè)務(wù)的開(kāi)發(fā),短時(shí)間內(nèi)構(gòu)建企業(yè)應(yīng)用,同時(shí)保證了系統(tǒng)的復(fù)用性和二次開(kāi)發(fā)特性,其越來(lái)越受到開(kāi)發(fā)者的歡迎。
為此,文章提出了基于JEECG的有色金屬科技信息服務(wù)平臺(tái)系統(tǒng)框架,以O(shè)RACLE為數(shù)據(jù)存儲(chǔ)模式,采用面向服務(wù)分層架構(gòu)和組件化思想,提升了科技信息服務(wù)平臺(tái)的通用性和可維護(hù)性。
有色金屬科技信息服務(wù)平臺(tái)系統(tǒng)框架如圖1所示,分為基礎(chǔ)設(shè)施層、數(shù)據(jù)層、接口層、應(yīng)用支撐層、應(yīng)用服務(wù)層、門戶層等,同時(shí)通過(guò)一個(gè)統(tǒng)一的安全保障體系和標(biāo)準(zhǔn)規(guī)范體系來(lái)保障數(shù)據(jù)通信的安全。

圖1 有色金屬科技信息服務(wù)平臺(tái)總體框架
各層的主要功能如下:
基礎(chǔ)設(shè)施層主要為有色金屬科技信息服務(wù)平臺(tái)提供硬件和軟件運(yùn)行環(huán)境。
數(shù)據(jù)層采用Oracle數(shù)據(jù)庫(kù),存儲(chǔ)科技信息、綜合信息、市場(chǎng)信息、專家信息、期刊出版信息等,作為本平臺(tái)的數(shù)據(jù)基礎(chǔ)。
接口層主要包含業(yè)務(wù)接口、數(shù)據(jù)接口,其中業(yè)務(wù)接口主要進(jìn)行業(yè)務(wù)數(shù)據(jù)的邏輯算法接口開(kāi)發(fā),完成關(guān)于科技信息分類、市場(chǎng)價(jià)格信息分析、企業(yè)征信信息查詢等復(fù)雜數(shù)據(jù)操作接口,為應(yīng)用支撐層提供業(yè)務(wù)應(yīng)用支持。數(shù)據(jù)接口主要實(shí)現(xiàn)DAO(data access object)的設(shè)計(jì)和開(kāi)發(fā),將所有對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)操作抽象封裝在一系列的API中[6-7],供業(yè)務(wù)應(yīng)用使用。
應(yīng)用支撐層是整體應(yīng)用系統(tǒng)建設(shè)的基礎(chǔ)保障。根據(jù)本平臺(tái)的需求,進(jìn)行了面向服務(wù)體系架構(gòu)設(shè)計(jì),實(shí)現(xiàn)了相關(guān)應(yīng)用組件,包括工作流引擎、統(tǒng)一用戶管理、報(bào)表工具、查詢引擎、日志管理等。
應(yīng)用服務(wù)層主要包含有色金屬科技信息服務(wù)平臺(tái)的8個(gè)子系統(tǒng),包括科技信息管理子系統(tǒng)、綜合信息管理子系統(tǒng)、市場(chǎng)信息管理子系統(tǒng)、專家信息管理子系統(tǒng)、企業(yè)信息管理子系統(tǒng)、期刊出版信息管理子系統(tǒng)、基礎(chǔ)信息管理子系統(tǒng)、門戶網(wǎng)站信息管理子系統(tǒng)等。
門戶層主要包含的是一組具有相同標(biāo)準(zhǔn)和相同規(guī)范體系的網(wǎng)站群。它涵蓋了主站、各級(jí)子網(wǎng)站、各類專題網(wǎng)站以及移動(dòng)終端網(wǎng)站等。同時(shí)門戶層為應(yīng)用服務(wù)層的不同應(yīng)用提供信息資源的不同表現(xiàn)形式。
系統(tǒng)在對(duì)西北有色金屬研究院業(yè)務(wù)調(diào)查的基礎(chǔ)上,結(jié)合中國(guó)有色金屬協(xié)會(huì)鈦鋯鉿分會(huì)的專業(yè)指導(dǎo),做了詳細(xì)的需求分析。有色金屬科技信息服務(wù)平臺(tái)的主要使用者包括企業(yè)會(huì)員和業(yè)務(wù)管理員。其中,企業(yè)用戶可以在系統(tǒng)中瀏覽期刊文章、瀏覽市場(chǎng)評(píng)述、瀏覽價(jià)格行情、瀏覽進(jìn)出口數(shù)據(jù)、專業(yè)檢索、標(biāo)準(zhǔn)查詢、發(fā)布供求信息、發(fā)布人才招聘信息、發(fā)布會(huì)議信息等。業(yè)務(wù)管理員主要完成該平臺(tái)核心功能的管理,主要包含出版物管理、科技信息管理、企業(yè)信息管理、綜合信息管理、市場(chǎng)信息管理、專家信息管理、會(huì)員信息管理等。系統(tǒng)主要用例圖如圖2所示。

圖2 有色金屬科技信息服務(wù)平臺(tái)主要用例圖
有色金屬科技信息服務(wù)平臺(tái)包括出版子系統(tǒng)、科技信息子系統(tǒng)、企業(yè)信息管理子系統(tǒng)、綜合信息管理子系統(tǒng)、市場(chǎng)信息管理子系統(tǒng)、專家信息管理子系統(tǒng)、會(huì)員管理子系統(tǒng)、系統(tǒng)管理子系統(tǒng)等8個(gè)子系統(tǒng),功能模塊如圖3所示。
(1)出版子系統(tǒng):該子系統(tǒng)主要完成《鈦工業(yè)進(jìn)展》、《鈦鉿鋯工業(yè)簡(jiǎn)報(bào)》兩本期刊信息及出版文章管理。主要包含期刊基本信息管理、期刊出版信息管理、期刊出版文章管理等功能模塊。
(2)科技信息子系統(tǒng):該子系統(tǒng)主要完成國(guó)內(nèi)外專利、學(xué)位論文、國(guó)內(nèi)外標(biāo)準(zhǔn)、文集、出版圖書信息的管理。主要包含國(guó)內(nèi)外公開(kāi)專利管理、學(xué)位論文管理、國(guó)內(nèi)外標(biāo)準(zhǔn)管理、國(guó)內(nèi)外文集信息管理、國(guó)內(nèi)外出版圖書信息管理、國(guó)內(nèi)外發(fā)表論文管理等功能模塊。在每個(gè)子功能中又包括錄入、編輯、刪除、批量刪除、導(dǎo)入Excel、導(dǎo)出Excel等基礎(chǔ)功能。
(3)企業(yè)信息管理子系統(tǒng):該子系統(tǒng)主要實(shí)現(xiàn)對(duì)企業(yè)基礎(chǔ)信息、企業(yè)年度經(jīng)營(yíng)數(shù)據(jù)、企業(yè)裝備信息的管理。包含了企業(yè)基本信息管理、企業(yè)年度數(shù)據(jù)管理、企業(yè)裝備信息管理、明星企業(yè)管理等功能模塊。
(4)綜合信息管理子系統(tǒng):該子系統(tǒng)主要實(shí)現(xiàn)對(duì)鈦鋯鉿行業(yè)綜合信息的管理,其中綜合信息包含會(huì)議會(huì)展信息、有色金屬應(yīng)用實(shí)例信息、產(chǎn)品供應(yīng)與求購(gòu)信息、求職與招聘信息、政策法規(guī)信息、有色金屬轉(zhuǎn)化成果信息、有色金屬行業(yè)動(dòng)態(tài)信息等。因此該子系統(tǒng)包含了會(huì)議會(huì)展管理、應(yīng)用實(shí)例管理、供求信息管理、人才信息發(fā)布管理、政策法規(guī)管理、成果轉(zhuǎn)化管理、行業(yè)動(dòng)態(tài)管理等功能模塊。其中行業(yè)動(dòng)態(tài)管理子模塊除了錄入、編輯、刪除等基礎(chǔ)功能外,還具有置頂?shù)墓δ堋?/p>
(5)市場(chǎng)信息管理子系統(tǒng):該子系統(tǒng)主要實(shí)現(xiàn)有色金屬的市場(chǎng)評(píng)述信息、市場(chǎng)價(jià)格、市場(chǎng)進(jìn)出口信息的管理。包含市場(chǎng)價(jià)格管理、市場(chǎng)進(jìn)出口數(shù)據(jù)管理、市場(chǎng)評(píng)述報(bào)告管理功能模塊。其中市場(chǎng)價(jià)格、市場(chǎng)進(jìn)出口信息管理采用的是主從表的管理方式,主表管理的是標(biāo)題、月份、國(guó)別等基礎(chǔ)信息,從表中管理的是各種有色金屬元素的價(jià)格信息、進(jìn)出口數(shù)據(jù)信息等。
(6)專家信息管理子系統(tǒng):該子系統(tǒng)主要實(shí)現(xiàn)對(duì)專家信息、專家專題內(nèi)容等的管理。包含了專家基本信息管理、主題內(nèi)容管理、主題點(diǎn)評(píng)管理等功能模塊。其中專題內(nèi)容包含文檔、音頻、視頻等形式。
(7)會(huì)員信息管理子系統(tǒng):該子系統(tǒng)主要實(shí)現(xiàn)有色金屬科技信息服務(wù)平臺(tái)門戶網(wǎng)站注冊(cè)會(huì)員的管理。包含會(huì)員基本信息、密碼重置、會(huì)員信息審核等功能模塊。
(8)系統(tǒng)管理子系統(tǒng):該子系統(tǒng)主要實(shí)現(xiàn)有色金屬科技信息服務(wù)平臺(tái)基礎(chǔ)信息的管理,包含用戶管理、角色權(quán)限管理、組織機(jī)構(gòu)管理、系統(tǒng)菜單管理、數(shù)據(jù)字典管理等功能模塊。

圖3 系統(tǒng)功能結(jié)構(gòu)
為了方便系統(tǒng)管理員對(duì)平臺(tái)數(shù)據(jù)的管理,簡(jiǎn)化系統(tǒng)中數(shù)據(jù)操作的復(fù)雜度,在有色金屬科技信息服務(wù)平臺(tái)的每個(gè)子系統(tǒng)中都設(shè)計(jì)實(shí)現(xiàn)了數(shù)據(jù)導(dǎo)入導(dǎo)出功能。該功能是按照Excel模板實(shí)現(xiàn)數(shù)據(jù)庫(kù)表中數(shù)據(jù)和Excel之間的數(shù)據(jù)交互。
在實(shí)現(xiàn)該功能時(shí),主要借助JEasyPOI工具類實(shí)現(xiàn)。JEasyPOI可以快速實(shí)現(xiàn)Excel的導(dǎo)入導(dǎo)出,具體實(shí)現(xiàn)步驟如下[8]:
(1)導(dǎo)入依賴。
在WEB.XML文件中導(dǎo)入JEasyPoi組件的依賴包[9-10]。核心代碼如下:
(2)構(gòu)建實(shí)體類。
在JEasyPOI中導(dǎo)入導(dǎo)出都是基于注解的,在實(shí)體上做注解,標(biāo)識(shí)導(dǎo)出對(duì)象[8,11]。
核心代碼如下:
@ExcelTarget("courseEntity")
public class CourseEntity implements java.io.Serializable {
private String id;
@Excel(name="課程名稱", orderNum="1", needMerge = true)
private String name;
@ExcelEntity(id="yuwen")
@ExcelVerify()
private TeacherEntity teacher;
…
}
其中
@Excel作用到filed上面,是對(duì)Excel一列的一個(gè)描述。
@ExcelCollection表示一個(gè)集合,主要針對(duì)一對(duì)多的導(dǎo)出。
@ExcelEntity表示一個(gè)繼續(xù)深入導(dǎo)出的實(shí)體。
@ExcelTarget是作用于最外層的對(duì)象,描述該對(duì)象的id,以便支持一個(gè)對(duì)象可以針對(duì)不同導(dǎo)出做出不同處理。
(3)編寫對(duì)應(yīng)的Controller。
在Spring架構(gòu)中輸入相應(yīng)參數(shù)就可以完成Excel的導(dǎo)入導(dǎo)出[12]。核心代碼如下:
@RequestMapping(params="exportXls")
public String exportXls(KjbzEntity kjbz,HttpServletRequest request,HttpServletResponse response, DataGrid dataGrid,ModelMap map) {
CriteriaQuery cq=new CriteriaQuery(KjbzEntity.class, dataGrid);
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq,kjbz,request.getParameterMap());
List
map.put(NormalExcelConstants.FILE_NAME,"國(guó)內(nèi)外公開(kāi)標(biāo)準(zhǔn)");
map.put(NormalExcelConstants.CLASS,KjbzEntity.class);
map.put(NormalExcelConstants.PARAMS,new ExportParams("國(guó)內(nèi)外公開(kāi)標(biāo)準(zhǔn)列表", "導(dǎo)出人:管理員","導(dǎo)出信息"));
map.put(NormalExcelConstants.DATA_LIST,kjbzs);
return NormalExcelConstants.JEECG_EXCEL_VIEW;
}
MiniDao-PE是一款Java持久化框架,類似mybatis的持久層解決方案[13],可以統(tǒng)一事務(wù)管理。MiniDao-PE支持SQL語(yǔ)句和Java代碼的分離、支持自動(dòng)事務(wù)處理和手動(dòng)事務(wù)處理,輕松實(shí)現(xiàn)與hibernate輕量級(jí)無(wú)縫集成等[14]。具體實(shí)現(xiàn)步驟如下:
(1)接口定義,核心代碼如下:
@MiniDao
public interface EmployeeDao {
@Arguments("employee")
public List
@Arguments("empno")
Employee getEmployee(String empno);
…
}
(2)接口方法對(duì)應(yīng)SQL文件創(chuàng)建。
SQL文件定位到dao接口的方法,dao接口的每個(gè)方法對(duì)應(yīng)一個(gè)SQL文件。
SQL文件命名規(guī)則:{Dao接口名}_{方法名}.sql
簡(jiǎn)單SQL,也可以采用方法注釋標(biāo)簽。例如:
@Sql("SELECT count(*) FROM employee")
Integer getCount();
(3)編寫SQL文件內(nèi)容。
SQL文件采用模板語(yǔ)言Freemarker語(yǔ)法[15-16],可以靈活運(yùn)用,甚至可以寫腳本語(yǔ)言,宏處理等。例如:
SELECT * FROM employee where 1=1
<#if employee.age ?exists> and age='${employee.age}'
#if>
<#if employee.name ?exists> and name='${employee.name}'
#if> <#if employee.empno ?exists> and empno='${employee.empno}'
#if>
(4)@Arguments參數(shù)標(biāo)簽和@Param參數(shù)標(biāo)簽設(shè)置。
@Arguments({"empno","name"})
Map getMap(String empno,String name);
項(xiàng)目建成了中國(guó)有色金屬工業(yè)協(xié)會(huì)鈦鋯鉿分會(huì)的鈦鋯鉿工業(yè)網(wǎng)平臺(tái)。該平臺(tái)提供了鈦鋯鉿領(lǐng)域期刊論文、會(huì)議文集、專業(yè)書籍以及國(guó)內(nèi)外標(biāo)專利、企業(yè)、專家等大量的科技信息資源;同時(shí)面向鈦鋯鉿行業(yè)的工程技術(shù)人員、企業(yè)管理人員、市場(chǎng)營(yíng)銷人員對(duì)積累的科技信息資源進(jìn)行了深度挖掘和二次編輯加工,出版了行業(yè)咨詢雜志——《鈦鋯鉿工業(yè)簡(jiǎn)報(bào)》網(wǎng)刊,匯編了國(guó)內(nèi)外鈦及鈦合金、鋯及鋯合金、鎳及鎳合金等稀有金屬標(biāo)準(zhǔn)及專利匯編;構(gòu)建了鈦工業(yè)領(lǐng)域的企業(yè)、專家、市場(chǎng)信息數(shù)據(jù)庫(kù),為鈦工業(yè)領(lǐng)域提供了更加高效、便捷的資訊服務(wù)。平臺(tái)前端界面如圖4所示。

圖4 平臺(tái)前端界面
通過(guò)該平臺(tái)為鈦鋯鉿企業(yè)提供“一站式”的科技導(dǎo)航、項(xiàng)目咨詢、成果推廣、創(chuàng)業(yè)孵化等全方位服務(wù),滿足企業(yè)自主創(chuàng)新與發(fā)展的戰(zhàn)略需求,進(jìn)而推動(dòng)了中國(guó)鈦鋯鉿產(chǎn)業(yè)的發(fā)展和騰飛。
針對(duì)有色金屬行業(yè)背景,文中使用JEECG平臺(tái)和面向服務(wù)思想設(shè)計(jì)了有色金屬科技信息服務(wù)平臺(tái)。該平臺(tái)包含了目前有色金屬行業(yè)信息化管理的常用功能,掌握了有色金屬行業(yè)市場(chǎng)價(jià)格、進(jìn)出口數(shù)據(jù)、國(guó)內(nèi)外企業(yè)經(jīng)營(yíng)等情況,從而為有色金屬行業(yè)企業(yè)決策提供支持。