• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Activiti 與DDPush 的移動(dòng)工作流系統(tǒng)實(shí)現(xiàn)

      2015-11-25 02:59:16王海濤蔣厚明曹海濤
      計(jì)算機(jī)與現(xiàn)代化 2015年12期
      關(guān)鍵詞:實(shí)例消息部署

      王海濤,蔣厚明,王 俊,曹海濤

      (國(guó)網(wǎng)電力科學(xué)研究院,江蘇 南京 210000)

      0 引言

      隨著移動(dòng)通信技術(shù)的發(fā)展成熟和各種智能終端的普及應(yīng)用(如圖1 所示),移動(dòng)信息化正逐步改變?nèi)藗兊纳娣绞胶推髽I(yè)的運(yùn)營(yíng)方式,由于具備可移動(dòng)性、實(shí)時(shí)性、交互性和可管理性等優(yōu)點(diǎn),國(guó)內(nèi)外政府、交通、醫(yī)療、教育、銀行、保險(xiǎn)、制造、零售等行業(yè)已將移動(dòng)信息化大量應(yīng)用于現(xiàn)場(chǎng)作業(yè)、事務(wù)處理、商務(wù)智能等方面,將IT 系統(tǒng)延伸到移動(dòng)終端,以應(yīng)用和使用時(shí)間的“碎片化”實(shí)現(xiàn)生產(chǎn)效率與管理水平的全面提升,移動(dòng)信息化已從輔助工具發(fā)展為提升企業(yè)生產(chǎn)力的關(guān)鍵工具。

      對(duì)于國(guó)內(nèi)的企業(yè)用戶而言,目前的移動(dòng)應(yīng)用主要基于訪問(wèn)其所依賴的現(xiàn)有企業(yè)應(yīng)用與數(shù)據(jù),并與之互動(dòng)。近年來(lái),國(guó)內(nèi)電網(wǎng)企業(yè)的移動(dòng)應(yīng)用越來(lái)越廣泛,突出表現(xiàn)在現(xiàn)場(chǎng)作業(yè)方面,如:國(guó)家電網(wǎng)公司部分單位已實(shí)現(xiàn)用電管理、業(yè)擴(kuò)報(bào)裝、用電檢查、抄表作業(yè)、電力線路巡檢作業(yè)、物資管理、應(yīng)急作業(yè)處理等移動(dòng)應(yīng)用,南方電網(wǎng)公司在配網(wǎng)檢修遠(yuǎn)程資料查詢、線路設(shè)備巡視管理、缺陷管理、故障搶修等業(yè)務(wù)領(lǐng)域已實(shí)現(xiàn)了移動(dòng)化現(xiàn)場(chǎng)作業(yè),有效地提高工作質(zhì)量與效率,實(shí)現(xiàn)了現(xiàn)場(chǎng)作業(yè)管理的電子化、信息化、規(guī)范化和智能化。

      圖1 移動(dòng)信息化發(fā)展趨勢(shì)

      國(guó)家電網(wǎng)公司提出“加強(qiáng)主營(yíng)業(yè)務(wù)的移動(dòng)信息化建設(shè),有效支撐智能電網(wǎng)和新技術(shù)應(yīng)用”的要求,移動(dòng)工作流系統(tǒng)是移動(dòng)信息建設(shè)中的重要環(huán)節(jié),通過(guò)移動(dòng)工作流系統(tǒng)實(shí)現(xiàn)出差員工的遠(yuǎn)程移動(dòng)報(bào)銷和遠(yuǎn)程移動(dòng)審批(包括審批流程發(fā)起、財(cái)務(wù)電子憑證審批、審批結(jié)果短信提醒、移動(dòng)端查詢報(bào)銷結(jié)果),將需要審批的各類流程以短信、郵件的方式推送到移動(dòng)終端,方便用戶實(shí)時(shí)地查閱待審批流程或文件,審批信息實(shí)時(shí)反饋至PC 端用戶。

      1 系統(tǒng)總體設(shè)計(jì)

      1.1 移動(dòng)應(yīng)用平臺(tái)

      如圖2 所示,移動(dòng)信息化總體技術(shù)框架(即移動(dòng)應(yīng)用平臺(tái))包括移動(dòng)終端層、平臺(tái)層、安全防護(hù)層、網(wǎng)絡(luò)層以及后端業(yè)務(wù)應(yīng)用層:

      圖2 移動(dòng)應(yīng)用平臺(tái)框架

      1)移動(dòng)終端層。包括業(yè)務(wù)應(yīng)用、終端設(shè)備服務(wù)、操作系統(tǒng)應(yīng)用、公共服務(wù)和終端安全與管理5 部分。

      2)移動(dòng)應(yīng)用平臺(tái)層。該層提供自主設(shè)計(jì)的移動(dòng)富客戶端、UI 組件、移動(dòng)工作流、移動(dòng)報(bào)表、移動(dòng)視頻實(shí)時(shí)傳輸、移動(dòng)打印、數(shù)據(jù)訪問(wèn)、數(shù)據(jù)同步、安全控制、終端特性封裝和移動(dòng)GIS[1-2]等功能模塊,為不同業(yè)務(wù)領(lǐng)域的移動(dòng)應(yīng)用提供功能全面的移動(dòng)開(kāi)發(fā)支持和運(yùn)行框架,以及標(biāo)準(zhǔn)統(tǒng)一的業(yè)務(wù)系統(tǒng)服務(wù)集成規(guī)范。同時(shí),平臺(tái)負(fù)責(zé)與后端業(yè)務(wù)應(yīng)用和一體化平臺(tái)進(jìn)行集成,移動(dòng)終端通過(guò)平臺(tái)與后端業(yè)務(wù)應(yīng)用進(jìn)行通信交互。

      3)安全防護(hù)層。該層為移動(dòng)信息化各層提供安全防護(hù)支撐,包括外網(wǎng)防護(hù)、終端防護(hù)、安全接入、內(nèi)外網(wǎng)交互和內(nèi)網(wǎng)防護(hù)等。

      4)后端業(yè)務(wù)應(yīng)用層。指后端業(yè)務(wù)應(yīng)用系統(tǒng),為移動(dòng)終端提供業(yè)務(wù)數(shù)據(jù)及服務(wù)支撐,如生產(chǎn)管理信息系統(tǒng),涵蓋公司財(cái)務(wù)、營(yíng)銷、運(yùn)檢、基建、物資及人資6大業(yè)務(wù)條線,以及外部業(yè)務(wù)系統(tǒng)等。

      5)網(wǎng)絡(luò)層。根據(jù)國(guó)網(wǎng)公司信通部安全接入管理規(guī)范要求,移動(dòng)終端類需要通過(guò)APN 或VPDN 專用通道,通過(guò)安全接入平臺(tái)聯(lián)接信息管理內(nèi)網(wǎng)。

      1.2 移動(dòng)工作流系統(tǒng)

      在移動(dòng)應(yīng)用平臺(tái)的整體框架設(shè)計(jì)下,設(shè)計(jì)移動(dòng)終端工作流處理技術(shù),能夠在移動(dòng)終端上進(jìn)行流程運(yùn)行和管理,為現(xiàn)有移動(dòng)應(yīng)用平臺(tái)提供移動(dòng)審批、移動(dòng)報(bào)銷等功能,實(shí)現(xiàn)工作過(guò)程管理的自動(dòng)化、智能化和整合化,增強(qiáng)移動(dòng)應(yīng)用平臺(tái)對(duì)生產(chǎn)、營(yíng)銷、物資、基建等業(yè)務(wù)的支撐能力。本文提出移動(dòng)工作流系統(tǒng)的框架設(shè)計(jì)(如圖3 所示)。系統(tǒng)分為3 個(gè)層次:

      1)客戶端層。提供業(yè)務(wù)處理、UI 界面等,并提供一套平臺(tái)接口同移動(dòng)應(yīng)用平臺(tái)、工作流服務(wù)以及消息推送服務(wù)進(jìn)行交互,主要技術(shù)難點(diǎn)包括同移動(dòng)應(yīng)用平臺(tái)的統(tǒng)一權(quán)限身份認(rèn)證,應(yīng)用平臺(tái)和工作流服務(wù)的用戶數(shù)據(jù)同步。

      2)移動(dòng)應(yīng)用層。該層主要是通過(guò)移動(dòng)應(yīng)用平臺(tái)完成身份認(rèn)證功能、用戶同步、業(yè)務(wù)數(shù)據(jù)同步等,通過(guò)消息推送服務(wù)進(jìn)行工作流流轉(zhuǎn)狀態(tài)通知、離線消息緩存和持久化,最主要的是利用工作流引擎提供工作流任務(wù)的服務(wù)。

      3)數(shù)據(jù)庫(kù)層。提供底層的持久化存儲(chǔ),存儲(chǔ)各種業(yè)務(wù)模型數(shù)據(jù)、運(yùn)行業(yè)務(wù)流程及任務(wù)數(shù)據(jù)、運(yùn)行歷史數(shù)據(jù)等。

      圖3 移動(dòng)工作流系統(tǒng)框架

      2 系統(tǒng)實(shí)現(xiàn)

      2.1 Activiti——輕量級(jí)工作流引擎

      關(guān)于工作流的研究[3-7]有很多,在實(shí)際應(yīng)用中,工作流系統(tǒng)的實(shí)現(xiàn)主要依靠工作流引擎,這其中有OpenWFE[8]、jBmp[9-10]、Workflow[11]、OFBiz[12]等。在本文的移動(dòng)工作流系統(tǒng)框架中使用的工作流引擎是Activiti[13],它是一個(gè)輕量級(jí)的工作流引擎和業(yè)務(wù)流程管理(Business Process Management,BMP)平臺(tái),其核心是一個(gè)極快且穩(wěn)定的BPMN2[14]流程引擎,能夠輕松進(jìn)行單機(jī)和集群部署,能夠完美地與Spring 框架集成,同其他的工作流引擎不一樣的是它是一個(gè)輕量級(jí)引擎并且簡(jiǎn)潔方便。

      圖4 Activiti 組件

      圖4 展示了Activiti 的主要組件,Modeling 主要進(jìn)行業(yè)務(wù)流程的建模和設(shè)計(jì);Runtime 是引擎的核心部分,它提供工作流的具體業(yè)務(wù)流程實(shí)現(xiàn);Management 包含2 個(gè)部分:1)Explorer 是一個(gè)業(yè)務(wù)展現(xiàn)應(yīng)用,包括查看待辦、已辦任務(wù),開(kāi)啟新的業(yè)務(wù)流程,查看用戶信息、數(shù)據(jù)記錄等;2)REST 提供了一組restful風(fēng)格的接口。

      圖3 中的客戶端應(yīng)用通過(guò)移動(dòng)應(yīng)用平臺(tái)提供的工具包與圖4 中的REST 中的接口進(jìn)行交互,這些restful 風(fēng)格的接口主要?jiǎng)澐譃楸? 中的4 類方法。

      表1 HTTP 方法和對(duì)應(yīng)操作

      和一般的Web 服務(wù)一樣,這些方法也有一些HTTP的響應(yīng)代碼,部分HTTP 響應(yīng)代碼和描述如表2 所示。

      表2 HTTP 響應(yīng)代碼和描述

      此外,REST 還接收一些分頁(yè)及排序參數(shù)、定義了一組變量格式等。利用平臺(tái)封裝好的工具包可以輕松地與REST 進(jìn)行通信,比如使用GET 方法查詢部署列表可以通過(guò)“http://host/activiti-rest/service/repository/deployments”URL 來(lái)獲取所有工作流平臺(tái)部署的業(yè)務(wù)模型,可以在URL 中加入分頁(yè)和排序參數(shù)、查詢參數(shù),比如指定部署的name、部署的category 等,假如查詢成功返回200 響應(yīng)碼,可以得到如下的響應(yīng)體:

      從上述的響應(yīng)體中,可以得到當(dāng)前系統(tǒng)中的所有部署信息,包括部署總量、部署id、部署的name、部署時(shí)間、category 等信息。此外,REST 還提供了其他的restful 風(fēng)格的接口,主要有:

      1)部署。包括獲取部署列表、獲得一個(gè)部署、創(chuàng)建新部署、刪除部署及列出部署內(nèi)的資源等功能。

      2)流程定義。包括流程定義列表、獲得一個(gè)流程定義、更新流程定義的分類、獲得一個(gè)流程定義的資源內(nèi)容、獲得流程定義的BPMN 模型、暫停流程定義及激活流程定義等功能。

      3)模型。包括獲得模型列表、獲得一個(gè)模型、更新模型、新建模型及刪除模型等功能。

      4)流程實(shí)例。包括流程實(shí)例、獲得流程實(shí)例、刪除流程實(shí)例、激活或掛起流程實(shí)例、啟動(dòng)流程實(shí)例、顯示流程實(shí)例列表以及查詢流程實(shí)例等功能。

      5)分支。包括獲取一個(gè)分支、對(duì)分支執(zhí)行操作、獲得一個(gè)分支的所有活動(dòng)節(jié)點(diǎn)、獲取分支列表、查詢分支、獲取分支的變量列表和獲得分支的一個(gè)變量等功能。

      6)任務(wù)。包括獲取任務(wù)、任務(wù)列表、查詢?nèi)蝿?wù)、更新任務(wù)、操作任務(wù)、刪除任務(wù)、獲得任務(wù)的變量、獲取任務(wù)的一個(gè)變量以及獲取變量的二進(jìn)制數(shù)據(jù)等功能。

      7)歷史。包括獲得歷史流程實(shí)例、歷史流程實(shí)例列表、查詢歷史流程實(shí)例、刪除歷史流程實(shí)例、獲得單獨(dú)歷史任務(wù)實(shí)例、獲取歷史任務(wù)實(shí)例、查詢歷史任務(wù)實(shí)例、刪除歷史任務(wù)實(shí)例、獲取歷史活動(dòng)實(shí)例、查詢歷史活動(dòng)實(shí)例、列出歷史變量實(shí)例以及查詢歷史變量實(shí)例等功能。

      8)表單。包括獲取表單數(shù)據(jù)和提交任務(wù)表單數(shù)據(jù)2 個(gè)功能。

      9)數(shù)據(jù)庫(kù)表。包括表列表、獲得一張表、獲得表的列信息以及獲得表的行數(shù)據(jù)。

      10)引擎。獲取引擎的屬性和信息。

      11)運(yùn)行時(shí)。主要功能是接收信號(hào)事件。

      12)作業(yè)。主要用于獲取、刪除以及執(zhí)行作業(yè)等功能。

      13)用戶和群組。主要用于對(duì)系統(tǒng)中的用戶和群組進(jìn)行增、刪、改、查等操作。

      2.2 DDPush——消息推送服務(wù)

      除了工作流引擎之外,移動(dòng)工作流系統(tǒng)還需要另外一個(gè)重要業(yè)務(wù)——消息推送服務(wù)。用戶在移動(dòng)端操作對(duì)工作流平臺(tái)的接口進(jìn)行調(diào)用,完成工作流任務(wù),會(huì)引起相應(yīng)的工作流業(yè)務(wù)流程跳轉(zhuǎn),那么這時(shí)候要通知下一個(gè)移動(dòng)終端用戶。此時(shí),需要通過(guò)系統(tǒng)中的消息推送服務(wù)來(lái)完成通知任務(wù)。

      到目前為止,即時(shí)通訊(包括其衍生的云推送平臺(tái)與服務(wù))一直被賦予高難度、高投入的標(biāo)簽,普通開(kāi)發(fā)者和中小型IT 公司的業(yè)務(wù)大都依賴現(xiàn)有的第三方產(chǎn)品或服務(wù),其缺點(diǎn)是:1)面臨高額的收費(fèi);2)從信息安全角度來(lái)說(shuō),把自己的客戶與業(yè)務(wù)建立在第三方服務(wù)的基礎(chǔ)上,不能完全保證安全性。目前,雖然業(yè)界也有各種較流行的開(kāi)源實(shí)現(xiàn),但其普及程度還比較低。另外,由于目前的開(kāi)源實(shí)現(xiàn),普遍基于較高級(jí)的應(yīng)用層面(例如:XMPP[15-16]),所以其實(shí)現(xiàn)較為復(fù)雜,不容易掌控和進(jìn)行二次開(kāi)發(fā),并且越高級(jí)的應(yīng)用,其通用性往往越低。

      本文中采用DDPush[17]作為消息推送服務(wù),其基于自有的二進(jìn)制網(wǎng)絡(luò)傳輸協(xié)議(基于TCP 和UDP),因而可以支持各種類型的終端設(shè)備,包括各種智能手機(jī)、平板、智能設(shè)備、物聯(lián)網(wǎng)硬件和各種終端操作系統(tǒng)(包括:Android、Windows、Linux 等)。由于DDPush使用Java 語(yǔ)言開(kāi)發(fā),因此服務(wù)端可運(yùn)行在各種操作系統(tǒng)和服務(wù)器上。

      DDPush 擁有很多優(yōu)勢(shì):

      1)可自定義消息格式,易于擴(kuò)展?;赨UID(Universally Unique Identifier)通用唯一識(shí)別碼來(lái)工作。根據(jù)UUID 全球唯一的特點(diǎn),DDPush 視一個(gè)UUID 能唯一標(biāo)識(shí)一個(gè)終端,不管其來(lái)源和任何特性。

      2)容量高,速度快,要求低。在線部分主要采用UDP 協(xié)議(同時(shí)支持TCP 協(xié)議),支撐1 000 萬(wàn)終端在線的服務(wù)器,最少只需要4G 內(nèi)存(不考慮變長(zhǎng)自定義信息的情況下),單個(gè)主流雙核CPU 使用率低于75%,即一部普通PC 臺(tái)式機(jī)的配置。DDPush 推送部分采取TCP 協(xié)議和Java NIO 非阻塞網(wǎng)絡(luò)技術(shù),普通PC 可支持至少數(shù)千臺(tái)應(yīng)用服務(wù)器同時(shí)長(zhǎng)連接推送信息到終端,每秒推送信息的速度在1 萬(wàn)條以上。

      3)終端設(shè)備流量少、省電。采用DDPush,智能手機(jī)等終端設(shè)備在線一個(gè)月(空載的情況下),只需幾百kB 的上載流量,下載流量甚至可調(diào)節(jié)到為0。連續(xù)在線48 小時(shí)耗電少于0.5 mAh。

      本文中DDPush 采用工作流系統(tǒng)自定義的協(xié)議包格式:

      [1 字節(jié)版本號(hào)][1 字節(jié)appid][1 字節(jié)命令碼][1 字節(jié)消息類型][32 字節(jié)UUID][2 字節(jié)包內(nèi)容長(zhǎng)度][包內(nèi)容]

      具體含義如表3 所示。

      表3 移動(dòng)工作流系統(tǒng)自定義協(xié)議報(bào)格式

      DDPush 擁有眾多優(yōu)勢(shì),但是并不支持離線消息,即沒(méi)有持久化存儲(chǔ)的功能,而在本文的移動(dòng)工作流系統(tǒng)中實(shí)現(xiàn)了這一功能(如圖5 所示),主要是通過(guò)使用自定義的DDPush 協(xié)議報(bào)格式,加入消息類型標(biāo)識(shí),使用離線消息隊(duì)列和連接池機(jī)制,使用多個(gè)離線消息處理線程對(duì)離線消息進(jìn)行緩存和持久化處理。

      圖5 DDPush 消息推送服務(wù)

      在DDPush 內(nèi)部維護(hù)了一組移動(dòng)設(shè)備狀態(tài)機(jī),每一個(gè)狀態(tài)機(jī)都記錄了一段時(shí)間內(nèi)與消息推送服務(wù)器連接過(guò)的設(shè)備,當(dāng)設(shè)備上線或重新連接時(shí)取出離線消息數(shù)據(jù)并推送出去,此外還要確定移動(dòng)端的成功接收反饋消息。在一臺(tái)單個(gè)主流雙核CPU、4 G 內(nèi)存的筆記本上經(jīng)過(guò)測(cè)試,離線數(shù)據(jù)的讀取量可以達(dá)到30~40 k 條/s。

      3 結(jié)束語(yǔ)

      隨著移動(dòng)技術(shù)的不斷發(fā)展,移動(dòng)終端日益成為人們?nèi)粘I畹囊徊糠?,通過(guò)移動(dòng)工作流實(shí)現(xiàn)便捷的辦公自動(dòng)化是不可阻擋的趨勢(shì)。在國(guó)家電網(wǎng)公司的自動(dòng)化信息建設(shè)中,移動(dòng)工作流是重要的環(huán)節(jié)。本文提出了一種快速而有效構(gòu)建工作流系統(tǒng)的方法,能夠輕松實(shí)現(xiàn)復(fù)雜的工作流業(yè)務(wù)流程,并且提供能支持大量移動(dòng)設(shè)備在線進(jìn)行消息通信的消息推送服務(wù)。消息推送服務(wù)具有輕量級(jí)、易于擴(kuò)展和維護(hù)、支持離線消息持久化等優(yōu)勢(shì),在與其他系統(tǒng)集成方面,消息推送和工作流引擎可以進(jìn)行獨(dú)立部署,亦可作為其他系統(tǒng)的服務(wù)模塊進(jìn)行工作,在部署上可以非常簡(jiǎn)便。通過(guò)與移動(dòng)應(yīng)用平臺(tái)的集成,該移動(dòng)工作流系統(tǒng)整體運(yùn)行良好。

      [1]Benz U C,Hofmann P,Willhauck G,et al.Multi-resolution,object-oriented fuzzy analysis of remote sensing data for GIS-ready information[J].Isprs Journal of Photogrammetry & Remote Sensing,2004,58(3-4):239-258.

      [2]龔健雅.當(dāng)代GIS 的若干理論與技術(shù)[M].武漢:武漢測(cè)繪科技大學(xué)出版社,1999.

      [3]Aalst V D,Hee V Kees.Workflow Management-Models,Methods and Systems[M].Mit Press Books,2004.

      [4]Wil M P van der Aalst.The application of petri nets to workflow management[J].Journal of Circuits,Systems,and Computers,1998,8(1):21-66.

      [5]Agrawal R,Gunopulos D,Leymann F.Mining process models from workflow logs[C]// Extending Database Technology-EDBT.1998,1377:469-483.

      [6]羅海濱,范玉順,吳澄.工作流技術(shù)綜述[J].軟件學(xué)報(bào),2000,11(7):899-907.

      [7]范玉順,吳澄.工作流管理技術(shù)研究與產(chǎn)品現(xiàn)狀及發(fā)展趨勢(shì)[J].計(jì)算機(jī)集成制造系統(tǒng),2000,6(1):1-7.

      [8]Sourceforge.OpenWFE[EB/OL].http://sourceforge.net/projects/openwfe/,2015-09-14.

      [9]jBpm.jBpm[EB/OL].http://www.jbpm.org/,2015-09-14.

      [10]Sun Y F.Design and implementation of equipment management system based on the JBMP and lightweight J2EE[J].Applied Mechanics & Materials,2013,347-350:3283-3286.

      [11]Codehaus.Codehaus[EB/OL].http://workflow.codehaus.org/,2015-09-14.

      [12]Apache.OFBiz[EB/OL].http://ofbiz.apache.org/,2015-09-14.

      [13]Activiti.Activiti Components[EB/OL].http://www.activiti.org/components.html,2015-09-14.

      [14]OMG.BPMN2[EB/OL].http://www.omg.org/spec/BPMN/2.0/,2015-09-14.

      [15]潘鳳,王華軍,苗放,等.基于XMPP 協(xié)議和Openfire 的即時(shí)通信系統(tǒng)的開(kāi)發(fā)[J].計(jì)算機(jī)時(shí)代,2008(3):15-16.

      [16]IETF RFC6121,Extensible Messaging and Presence Protocol (XMPP):Instant Messaging and Presence[S].

      [17]DDPush.DDPush[EB/OL].http://www.ddpush.net/,2015-09-14.

      猜你喜歡
      實(shí)例消息部署
      一種基于Kubernetes的Web應(yīng)用部署與配置系統(tǒng)
      晉城:安排部署 統(tǒng)防統(tǒng)治
      部署
      一張圖看5G消息
      部署“薩德”意欲何為?
      太空探索(2016年9期)2016-07-12 10:00:02
      消息
      消息
      消息
      完形填空Ⅱ
      完形填空Ⅰ
      北票市| 普兰店市| 东兴市| 祥云县| 油尖旺区| 黄山市| 固安县| 嘉定区| 嵊州市| 长宁区| 社旗县| 新建县| 谷城县| 安阳市| 衡东县| 长寿区| 石首市| 建阳市| 永和县| 九台市| 金平| 兴义市| 肥城市| 静海县| 巍山| 麟游县| 栾川县| 潞城市| 龙门县| 平顺县| 东平县| 江门市| 房山区| 会昌县| 镇坪县| 云霄县| 郯城县| 汉寿县| 湄潭县| 永济市| 胶州市|