基于Activiti的创业担保贷款协同审批系统的设计与实现

2020-07-22 09:54褚燕华高键
电脑知识与技术 2020年11期
关键词:区级业务流程创业者

褚燕华 高键

摘要:为解决目前创业担保贷款多部门审批时面临的数据共享性差、审核效率低,以及创业者难以精确跟踪审批进程的问题。通过对核心业务建模,基于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工作流引擎为创业担保贷款的申请审批流程的优化提供了高效的系统解决方案。本文从系统整体架构设计、业务流程建模、流程数据查询、流程资源管理几个重要的方面对系统的设计与实现进行了描述,通过该系统,将创业担保贷款的申请、审批流程制定成一套完整的业务流程规范,达到了将各审核部门有机地整合、协同办公的目的,并实现了对“业务流程精确管控”的目标。下一步工作是增强系统扩展性,运用柔性工作流技术,满足不同地区在不同的创业担保贷款业务流程下也可以通过自定义业务流程实现高效的协同审批。

猜你喜欢
区级业务流程创业者
天津市总多项举措推动“区级工会加强年”工作落地
保定市首家县区级职工爱国主义教育基地在莲池区揭牌
郭江涛:一个青年创业者的“耕耘梦
RPA机器人助业务流程智能化
推进报台网深度融合 做强区级融媒体中心
STK业务流程优化的探究
企业财务管理、业务流程管理中整合ERP之探索
让创业者赢在起跑线上
基于财务业务流程再造的ERP信息系统构建探析
互联网创业者