基于SSH2的電子監(jiān)管平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
溫小清,潘永才,劉海龍,汪 標(biāo),羅雪姣
(湖北大學(xué) 計(jì)信學(xué)院,湖北 武漢 430062)
0 引 言
食品藥品是人類賴以生存和發(fā)展的必需品,食品藥品安全直接關(guān)系人民群眾的身體健康和生命安全,體現(xiàn)了人民群眾最關(guān)心、最直接、最現(xiàn)實(shí)的利益。傳統(tǒng)的食品藥品監(jiān)管由人工手動(dòng)錄入,效率非常低下,加快食品藥品監(jiān)管信息化與電子監(jiān)管建設(shè),不僅能夠幫助各級(jí)監(jiān)管部門及時(shí)、全面地掌握食品藥品的生產(chǎn)經(jīng)營(yíng)及零售情況,更好地進(jìn)行日常監(jiān)管,而且能夠及時(shí)、方便、準(zhǔn)確地進(jìn)行追溯查詢和迅速召回,更好地處理食品藥品突發(fā)事件,還能夠及時(shí)為各級(jí)領(lǐng)導(dǎo)提供食品藥品監(jiān)管信息,為公眾提供食品藥品信息檢索、監(jiān)管碼查詢和真?zhèn)舞b別等信息查詢服務(wù),對(duì)強(qiáng)化食品藥品監(jiān)管、提高監(jiān)管水平與效能、保證人民群眾用藥安全有效具有十分重要的意義。在當(dāng)前食品藥品質(zhì)量事件多發(fā)、監(jiān)管手段不夠和基層監(jiān)管力量不足的情況下,顯得尤為緊迫。
1 平臺(tái)建設(shè)思路
行政執(zhí)法 :以網(wǎng)格化監(jiān)管為基準(zhǔn)原則,配以執(zhí)法人員績(jī)效考核機(jī)制,督促相關(guān)人員可有序、嚴(yán)格地,采用人機(jī)交互或企業(yè)互動(dòng)方式執(zhí)法。
信息惠民 :采用政民互動(dòng),加強(qiáng)消費(fèi)者安全意識(shí)的同時(shí)輔助執(zhí)法人員進(jìn)行執(zhí)法考察 ;信息透明,數(shù)據(jù)對(duì)消費(fèi)者開放, 做到可溯源的目的。
多領(lǐng)域監(jiān)管:支持食藥品生產(chǎn)環(huán)境監(jiān)管、生鮮或肉制品等在加工或飼養(yǎng)過程監(jiān)管、流通領(lǐng)域監(jiān)管、市場(chǎng)環(huán)節(jié)監(jiān)管、消費(fèi)環(huán)節(jié)監(jiān)管等。
2 系統(tǒng)業(yè)務(wù)架構(gòu)
以企業(yè)信息基礎(chǔ)庫、四品一械產(chǎn)品基礎(chǔ)信息庫、行政區(qū)域數(shù)據(jù)字典、量化評(píng)級(jí)指標(biāo)庫等四大資源為基礎(chǔ)手段 ;結(jié)合行政執(zhí)法、信息監(jiān)測(cè)、應(yīng)急管理、公共服務(wù)、決策支持及內(nèi)部管理等六大業(yè)務(wù)系統(tǒng)為輔助;全方位覆蓋食品、藥品、保健品、化妝品及醫(yī)療器械等四品一械行業(yè) ;系統(tǒng)制定流程化的行政許可方案,各個(gè)環(huán)節(jié)的流程可根據(jù)當(dāng)?shù)氐木唧w情況自省定制, 更好地保證食藥行政人員可以更便利,更有效得完成既定目標(biāo), 為后續(xù)的行政監(jiān)管工作提供安全入門保障。
整體業(yè)務(wù)架構(gòu)流程如圖 1 所示:
圖1 業(yè)務(wù)架構(gòu)流程圖
建立許可:食藥局用戶對(duì)前來辦理許可證的新商戶進(jìn)行許可受理,現(xiàn)場(chǎng)核查、審核、打印許可證、歸檔入庫等流程。
變更許可:當(dāng)商戶經(jīng)營(yíng)的項(xiàng)目范圍變化后,食藥局用戶根據(jù)變化內(nèi)容對(duì)原有許可證進(jìn)行變更、核查審核、打印歸檔等流程。
延續(xù)許可:商戶經(jīng)營(yíng)范圍內(nèi)的許可證到期之后,如果繼續(xù)經(jīng)營(yíng),需要進(jìn)入系統(tǒng)進(jìn)行相應(yīng)的延續(xù)許可操作。
注銷許可:商戶不再經(jīng)營(yíng)許可證內(nèi)項(xiàng)目時(shí),需要進(jìn)入系統(tǒng)辦理注銷許可申請(qǐng)并存檔。
現(xiàn)場(chǎng)核查 :食藥局執(zhí)法人員對(duì)辦理許可證的經(jīng)營(yíng)單位進(jìn)行實(shí)地現(xiàn)場(chǎng)核查。
聽證 :當(dāng)現(xiàn)場(chǎng)核查有爭(zhēng)議時(shí)選擇聽證。
補(bǔ)證許可:商戶許可證意外丟失需要辦理補(bǔ)證手續(xù)。
撤回申請(qǐng):商戶不再需要許可證后,可對(duì)已經(jīng)申請(qǐng)的許可證進(jìn)行撤回。
行政流程如圖 2 所示:
控制層、業(yè)務(wù)邏輯層和DAO 層。分層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問等工作放到中間層處理,客戶不直接與數(shù)據(jù)庫進(jìn)行交互, 而是通過控制器與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。
系統(tǒng)技術(shù)架構(gòu)
圖 2 行政流程圖
3系統(tǒng)技術(shù)架構(gòu)
數(shù)據(jù)庫方面由于監(jiān)管平臺(tái)涉及的用戶群體比較龐大,數(shù)據(jù)量和并發(fā)數(shù)量相對(duì)較多,可以選擇甲骨文公司的 Oracle 數(shù)據(jù)庫。Oracle 數(shù)據(jù)庫采用并行服務(wù)器模式,安全性、穩(wěn)定性和可擴(kuò)展性都很強(qiáng),并且由于其跨平臺(tái)和具有強(qiáng)大的分布式處理功能,經(jīng)常作為大型網(wǎng)站的首選關(guān)系型數(shù)據(jù)庫。
應(yīng)用開發(fā)方面選擇 J2EE 技術(shù),Java 語言以其特有的安全性、跨平臺(tái)性、一次編寫到處執(zhí)行和具有諸多開源框架的特性已經(jīng)成為電子商務(wù)平臺(tái)的首選語言。該平臺(tái)在應(yīng)用架構(gòu)技術(shù)實(shí)現(xiàn)上依賴于目前最為流行的Struts2+Hibernate+Spring 組合;應(yīng)用架構(gòu)采用具有高度可擴(kuò)展性的控制器層 + 業(yè)務(wù)邏輯層+DAO 層的分層架構(gòu) ;工作流程采用開源 Java工作流框架JBPM ;前端部分采用通用的前端 UI 框架 easyUI+jsp 實(shí)現(xiàn), 廣泛兼容各種不同的瀏覽器和移動(dòng)設(shè)備。系統(tǒng)技術(shù)架構(gòu)見圖 3。
4平臺(tái)架構(gòu)設(shè)計(jì)
該平臺(tái)服務(wù)器采用Java EE 的分層結(jié)構(gòu),分為視圖層、
控制層、業(yè)務(wù)邏輯層和DAO 層。分層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問等工作放到中間層處理,客戶不直接與數(shù)據(jù)庫進(jìn)行交互, 而是通過控制器與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。
中間層采用Struts2+Spring3+Hibernate4。其中:
控制層負(fù)責(zé)表現(xiàn)層與業(yè)務(wù)邏輯層的交互,調(diào)用業(yè)務(wù)邏輯層,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層來顯示。此處選擇 struts2 的action 作為控制器,web.xml 配置如下:
<filter>
<filter-name> struts2
</filter-name>
<filter-class> org.apache.struts2.dispatcher
.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
首先用戶通過 http 向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器獲得請(qǐng)求后根據(jù) xml 中的映射地址將其提交給 Struts2 進(jìn)行處理, Struts2 對(duì)請(qǐng)求路徑進(jìn)行action 控制器匹配并執(zhí)行相應(yīng)的方法, 將返回的結(jié)果交給視圖,經(jīng)過解析渲染后最終以 html 頁面的方式呈現(xiàn)給用戶。
Service 層(業(yè)務(wù)邏輯層),負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯,對(duì) DAO對(duì)象進(jìn)行模塊封裝。此處業(yè)務(wù)對(duì)象由Spring 進(jìn)行管理,利用Spring 的依賴注入將業(yè)務(wù)代碼注入到控制層完成業(yè)務(wù)邏輯。事務(wù)控制采用Spring 的聲明式事務(wù),配置在業(yè)務(wù)層,代碼如下:
<bean name="transactionManager" class=" org.springframework. orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<aop :config>
<aop :pointcut id="transactionPointcut"expression=
"(execution(* fda.service..*Impl.*(..)))"/>
<aop :advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />
</aop :config>
Dao 層(數(shù)據(jù)訪問對(duì)象層),負(fù)責(zé)與持久化對(duì)象交互,封裝了對(duì)數(shù)據(jù)的增、刪、改、查原子操作, 此處數(shù)據(jù)源選擇druid 數(shù)據(jù)源,該數(shù)據(jù)源可監(jiān)控網(wǎng)站訪問情況。
PO層(持久化對(duì)象層),通過實(shí)體 /關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)映射成對(duì)象,實(shí)現(xiàn)以面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫,此處采用Hibernate 作為O/R Mapping 框架,相關(guān)配置代碼如下:
<bean name="dataSource" class="com.alibaba.druid.pool. DruidDataSource"
init-method="init" destroy-method="close">
<property name="url" value="${jdbc_url}" />
<property name="username" value="${jdbc_username}" />
<property name="password" value="${jdbc_password}"/>
<property name="initialSize" value="0" />
<property name="maxActive" value="20" />
<property name="minIdle" value="0" />
<property name="maxWait" value="60000" />
<property name="validationQuery" value="${validationQuery}" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="testWhileIdle" value="true" />
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<property
name="minEvictableIdleTimeMillis" value="25200000" />
<property name="removeAbandoned" value="true" />
<property name="removeAbandonedTimeout" value="1800" />
<property name="logAbandoned" value="true" />
<property name="filters" value="stat" />
</bean>
<!-- 配置hibernate session 工廠 -->
<bean id="sessionFactory" class="org.springframework.orm. hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">
${hibernate.hbm2ddl.auto}</prop>
<prop key="hibernate.dialect">
${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">
${hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">
${hibernate.format_sql}</prop>
<prop key="hibernate.use_sql_comments">
${hibernate.use_sql_comments}</prop>
</props>
</property>
</bean>
映射文件采用注解方式,配置如下:
<property name="packagesToScan">
<list>
<value>fda.model</value>
</list>
</property>
視圖層采用通用的Jquery easyUI 框架獲取控制層傳回來的數(shù)據(jù)進(jìn)行頁面解析渲染,最終向客戶端顯示相應(yīng)的視圖。
5 系統(tǒng)主要模塊
(1)食品經(jīng)營(yíng)戶信息 :包括食品經(jīng)營(yíng)戶總臺(tái)賬、食品總臺(tái)賬和同步經(jīng)營(yíng)戶;
(2)準(zhǔn)入檢查 :包括食品索證、供貨商索證和備案監(jiān)管;
(3)信息查詢 :包括食品流向查詢、食品分布查詢、庫存查詢、進(jìn)貨臺(tái)帳查詢、銷售臺(tái)帳查詢和過期證照查詢;
(4)應(yīng)急處理 :整改通知發(fā)布、鎖定和解鎖功能 ;
(5)通知公告 :警示信息發(fā)布和食藥文件發(fā)布;
(6)食品檢測(cè) :包括檢測(cè)計(jì)劃上報(bào)、檢測(cè)信息發(fā)布、不合格食品檢測(cè)信息;
(7)登記管理:設(shè)立許可、撤回許可、變更許可、延續(xù)許可、
注銷許可、excel 導(dǎo)入許可和補(bǔ)證許可;
(8)許可證打?。喊ㄎ臅蛴『妥C照打印。
結(jié) 語
電子監(jiān)管平臺(tái)有利于食藥局部門對(duì)與食品藥品等產(chǎn)品質(zhì)量的遠(yuǎn)程監(jiān)控,減少食品藥品監(jiān)管的盲點(diǎn);能加強(qiáng)與經(jīng)營(yíng)企業(yè)信息的共享與交流,快速應(yīng)對(duì)要害事件 ;有利于食品藥品管理部門對(duì)自身管理的效率,大大提高企業(yè)經(jīng)營(yíng)流通效率,降低企業(yè)經(jīng)營(yíng)成本 ;有利于對(duì)假冒偽劣產(chǎn)品的有效監(jiān)管。電子監(jiān)管平臺(tái)的使用將大大改善人們的日常生活,提高人們對(duì)食品和藥品安全使用的信心。
參 考文獻(xiàn)
[1]王朋,趙保華,韓仙玉. 基于SSH2 的動(dòng)態(tài)工作流模型的研究[J].
電腦與信息技術(shù),2013,21(3):7-10.
[2]吳慰娜. 基于工作流的“一站式服務(wù)”行政許可系統(tǒng) [J]. 計(jì)算機(jī)工程,
2006,32(18):267-269..
[3]李勇“. 一站式”行政許可系統(tǒng)總體設(shè)計(jì)研究 [J]. 電子政務(wù),200(8 7): 94-101.
[4]韓江. 基于 SSH2 架構(gòu)的 Java Web 通用權(quán)限管理的設(shè)計(jì) [J]. 智能計(jì)算機(jī)與應(yīng)用,2014(2):112-114.
[5]高亮,劉旸,宗傳玉,等. 基于SSH2 與JBPM 的OA 系統(tǒng)應(yīng)用研究[J]. 微處理機(jī),2011(4):38-40.
[6]梁永潮,朱宇,張坤鰲. 基于SSH2 動(dòng)態(tài)工作流模型的研究與設(shè)計(jì)
[J]. 電腦知識(shí)與技術(shù),2011(19):4719-4723.
[7]李君,王宇新. 基于JBPM 的工作流管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 信息通信,2013(4):85-86.
[8]袁雄偉,鐘寶榮.Spring MVC 框架下公文審批中應(yīng)用JBPM 工作流引擎[J]. 信息系統(tǒng)工程,2013(3):88-90.