褚燕華 高鍵

摘要:為解決目前創業擔保貸款多部門審批時面臨的數據共享性差、審核效率低,以及創業者難以精確跟蹤審批進程的問題。通過對核心業務建模,基于Activiti工作流引擎,結合SpringBoot、Shiro等Web開發技術,設計并實現了創業擔保貸款協同審批系統。利用該系統,可以達到創業者網上在線申請,各審批部門協同審批的目的,極大地提高了創業擔保貸款的申請、審批效率。
關鍵詞:Activiti流程引擎;創業擔保貸款;工作流;MVC模式;SpringBoot框架
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2020)11-0028-03
1背景
“互聯網+”理念的提出激發了傳統行業與互聯網技術的深度融合。在政務服務體系建設方面,政府在轉變職能的過程中,不斷扎實推進“互聯網+政務服務”工程建設,借助于現代的信息化手段,實現信息采集、信息監控等技術手段上的創新,進而實現政府不同部門間的數據互通,將極大地節約老百姓辦事的時間成本,對政府服務功能的提高有著重要意義。
創業擔保貸款是國家推出的一項惠民政策性貸款,通過政府出資設立擔保基金,以人社部門擔保、金融機構發放貸款、財政部門補貼利息的方式運行,旨在解決自謀職業、自主創業者在創業初期自籌資金不足的問題。
創業擔保貸款的申請審批共包含六類主體,分別是“創業者”“區級就業部門”“區級財政部門”“市級就業部門”“市級財政部門”“金融機構”(通常是銀行)。創業者將申請資料遞交到屬地的區就業部門,區就業部門主要核查創業者個人資料與企業資料的完整性、準確性,審核完畢后由區就業部門將創業者的申請資料報送至市就業部門和金融機構,由市就業部門和金融機構對創業者的擔保信息、征信信息進行審核,這一過程通常稱為“創業者基礎資料審核”。“創業者基礎資料審核”完畢后,由審核部門組成的聯合考查小組對創業者的經營場所、經營狀況進行“實地考查”,考查完畢后最終給出審批意見,審批結束。
這一申請審批流程在實際操作中存在一些缺陷,一方面,數據流向存在于六類不同的主體之間,目前開發的創業擔保貸款審批系統中,通常是就業系統或是金融系統基于本單位內控制度的需求而設計的,數據流向僅僅存在于單一的審核主體中,而就業系統、財政系統、金融系統間的數據傳輸主要是通過Excel表進行,數據共享性差。另一方面,創業者難以準確地、實時地跟蹤其申請的創業貸款的審批進程。
通過工作流的引入,可以很好地將各個主體的申請、審核職能進行整合,形成一條統一的、完整的、數據可共享的申請、審核鏈條。將工作流的優勢與現行的創業擔保業務流程結合,既能實現業務的自動流轉、并行審批,達到節約行政成本,提高決策效率的目的,又能提高政策執行力,進而規避職務風險。本文基于SpringBoot框架進行開發,以Activiti工作流引擎驅動創業擔保貸款的各個業務流程,實現了創業擔保貸款的規范化、高效化審批,提高了創業擔保貸款發放效率。
2系統框架設計
系統采用B/S(瀏覽器,服務器)的開發模式,以及經典的J2EE三層體系架構,將整個應用系統分為表現層、業務邏輯層、數據訪問層。表現層提供用戶與系統交互的UI界面,通過Ajax異步請求實現與后端的數據交互,本系統使用Thymeleaf模板引擎來實現對HTML頁面內容的渲染;業務邏輯層以Spring框架為核心,整合了Activiti工作流引擎用來實現對業務流程的控制,Shiro權限管理框架用來實現不用角色用戶對資源的訪問控制。數據訪問層使用Mybatis框架實現對數據的持久化操作。數據庫采用Mysql來存儲業務數據與流程數據。
3系統實現
本系統使用SpringBoot2.0框架進行開發,SpringBoot是基于Spring擴展而來的高效開發框架。SpringBoot基于“約定優于配置”的原則,實現了Spring的最大自動化配置,可以快速開發基于Spring的應用程序。
3.1業務流程建模
通過對創業擔保貸款的申請審批流程進行分析之后,采用基于eclipse的可視化流程設計器Activiti Designer插件對創業擔保貸款的申請、審批流程進行流程定義。創業擔保貸款申請審批業務流程模型圖如圖1所示。
創業擔保貸款的申請審批流程主要分為四個過程,即創業者申請、基礎信息審批、實地考查、反饋審批結果。下面分別對這四個過程的實現進行描述。
3.1.1創業者申請
創業者通過注冊登錄系統后,即可通過表單填寫申請信息,信息包括個人信息、企業信息、擔保信息、圖片附件等信息,經過系統對創業者提供的申請信息進行數據的完整性、約束性以及數據間的邏輯關系校驗無誤后,系統啟動審批流程。啟動流程的控制器(Controller)主要設計了以下兩個方法。第一個方法為:
applicantService.startFlow(ApplicantDetail a,Guarantor g,String userAccount)
該方法傳中,參數ApplicantDetail實體類封裝了創業者申請貸款的基本信息,Guarantor封裝了用戶的擔保信息,userAc-count用來標記啟動流程的用戶賬號。該方法主要完成持久化申請信息、擔保信息,啟動流程實例,并建立業務數據id與流程實例id的雙向綁定功能,該方法最后返回啟動的流程的實例對象。第二個方法為:
applicantService.addAnnex(String instanceid,ArrayList files)
該方法主要用來將用戶上傳的附件信息綁定到流程實例中,以供后續操作讀取附件信息。在整個流程啟動的過程中,通過spring的注解@Transactional定義了整個啟動過程為一個切面,可以確保在啟動流程實例的過程中如果發生異常,業務操作可以回滾到最初的狀態。
“創業者申請”任務完成時,在Activiti工作流中,通過自定義代理表達式(delegateExpression)的方式指定一個實現了TaskListener的類作為“創業者申請”這個用戶任務的“任務監聽器”,該監聽器主要完成“指定后續任務的辦理人”的功能。在創業擔保貸款的實際工作中,需要根據用戶填寫的地址信息,由屬地的區級就業部門、區級財政部門、金融機構去審核,該任務監聽器主要獲取創業者申報信息,之后從數據庫中獲取創業者屬地的區級就業部門、區級財政部門、金融機構審核人員的賬戶作為后續任務的辦理人,并封裝成一個HashMap,最后調用Activiti的API完成當前任務。
3.1.2基礎信息審批
基礎信息審批包含區級就業部門、市級就業部門、金融機構分別對創業者的個人信息、擔保信息、征信信息進行審核。
創業者提交申請信息后,首先由屬地的就業部門對創業者提交的基礎信息進行審核,審核確認后流程流轉到一個并行網關,由金融機構和市就業部門的工作人員分別對創業者的個人征信信息和擔保信息進行審核,并分別給出同意或者是駁回的審批意見,并行網關的出口通過代理表達式的方式指定了一個監聽器,用來獲取市就業工作人員和金融機構做出的審批意見,如果全部審核通過,流程會流轉到實地考查節點。
3.1.3實地考查
“實地考查”是指由市、區級就業部門、區級財政部門、金融機構組成的聯合調查組,實地調研創業者的經營場所、經營狀況、帶動就業人數等情況,并分別給出各自的審批意見。當創業者申請貸款額度較大時,往往需要市級財政部門參與審批。在Activiti流程圖中,用五個并行的用戶任務來表示,通過在包容網關的每條線路上設置條件,實現對于不同貸款額度下是否需要市級財政部門參與審批的需求。如果參與審批的單位全部審核通過,流程進入到反饋審批結果。
3.1.4反饋審批結果
“反饋審批結果”主要用來向各個流程的參與者反饋此次審批的最終認定結果。這一功能的實現主要通過Activiti的兩個服務任務(servicetask)來完成。第一個任務“反饋審核認定審批表”用來獲取本次審批流程中的所有流程變量、流程批注,生成pdf文檔供向流程參與者在線預覽或下載。第二個任務“發送消息:審核通過”通過調用短信服務接口向創業者發送審核通過的信息。
3.2流程數據的查詢
系統中的各類主體均會涉及流程數據的查詢,如查詢正在審批的流程實例信息、待辦任務信息、歷史流程實例信息等。為減少冗余代碼,提高代碼的復用性,系統將這部分功能封裝成一個工具類,不同角色的用戶通過調用工具類中的方法來查詢所需要的流程信息。查詢功能的具體實現通過Activiti提供的兩類查詢API來完成,即標準查詢與本地化(NativeQuery)查詢。標準查詢是以Java對象的方式通過創建一個指定類型的查詢對象后用鏈式編程的方法設置查詢參數,最后返回查詢結果,如待辦任務信息、歷史流程實例等都通過標準查詢來實現。本地化(NativeQuery)的查詢方式允許用戶通過傳人標準的SQL語句,最終通過調用mybatis的API對數據庫中的流程表進行查詢,可以滿足一些復雜的查詢需求。
3.3流程資源的管理
SpringBoot在集成Activiti時,系統啟動時默認自動部署re-sources/processes文件夾下的流程資源文件,但這種部署方式遇到流程圖調整時都需要頻繁更改系統源碼且重啟系統。為了能夠靈活、高效管理系統的流程資源,系統將這部分需求單獨抽取成為一個模塊,使系統管理人員可以通過Web頁面來管理系統的流程資源。流程資源的管理的后臺代碼主要通過一個控制器類來實現,該類內部封裝了Activiti工作流對流程資源管理的API,如流程資源的部署、刪除等,同時根據實際需求,新增了讀取流程資源信息的方法,如以XML或圖片的形式查看已部署的流程資源。
4結束語
Activiti是一款開源的、輕量級的、實現了BPMN2.0規范的工作流引擎,本文基于Activiti工作流引擎為創業擔保貸款的申請審批流程的優化提供了高效的系統解決方案。本文從系統整體架構設計、業務流程建模、流程數據查詢、流程資源管理幾個重要的方面對系統的設計與實現進行了描述,通過該系統,將創業擔保貸款的申請、審批流程制定成一套完整的業務流程規范,達到了將各審核部門有機地整合、協同辦公的目的,并實現了對“業務流程精確管控”的目標。下一步工作是增強系統擴展性,運用柔性工作流技術,滿足不同地區在不同的創業擔保貸款業務流程下也可以通過自定義業務流程實現高效的協同審批。