00:00
各位同学大家好,下面呢,我们继续来完成审批接口,刚才我们完成了主要的过程,咱最后缺少一个方法,就是结束流程,那我下面呢,把这个方法咱们进行实现,那这个方法怎么做,给各位做一个说明,然后咱们进行编写,其实这个过程啊,它是一个比较固定的一个模式,但这个模式呢,这里边各位同学自己写的时候,你可以把我课件中的代码直接复制,然后改成你的效果可以了,我这里边给大家一行一行来写一下,那咱们看啊,这个该怎么做,就是怎么来结束流程,首先啊,咱们一下这个原理,然后咱们用代码进行实现。那我这里边啊,给大家画一下。比如说我们现在啊,应该是这么一个流程。咱们画到这里。然后这里边啊,用这个给它连上。在里边写一下啊,第一个是这个张三审批。
01:03
第二个是这个李四审批。咱们目前啊是这么一个过程,而现在比如现在我这里边啊,由这个din提交了这个请假申请。那他提交之后呢,首先是不是应该是张三审批,那大家注意啊,张三审批如果说他审批通过,是不是到了李四这里,李四审批之后,最终是不是就结束了,这是一个最基本的过程啊,然后在这过程中,比如现在咱们按照我们刚才说到的啊,比如现在啊,张三他审批没有通过,把他驳回了,或者他审批没有通过。或者说他审批拒绝了啊,都是一个意思,那这个时候呢,你看啊,如果说他现在审批拒绝了,那这里边怎么做,怎么做这个din,他是不是要重新再提交这个申请,也说我现在啊,张三拒绝之后,我当前流程怎么样,是不是就直接结束了啊,这就代表我们那个结束流程他就直接结束了,咱目前就做这个事情,当他拒绝之后,我这个流程就直接结束,那这流程怎么结束,给大家做个说明啊,比如现在张三拒绝了,那这里边之前流程是不是就不走了,因为这个流程这里边他就断开了,然后怎么做,张三这个审批直接就到这个结束这个位置中来,直接到了这里啊,这是我们要做的,就是把当前这个流程给他断开,让张三直接来到结束这个节点中来,这个过程就是咱要做这个,就是拒绝了这个。
02:36
过程啊,或者说结束任务的一个过程,那下面按照这个咱们把这个代码来写一下啊,我这里边只是一个基本的分析啊,一个具体内容在代码中我们会有更详细体现,这个就断开了,直接让这个张三这个过程中到咱们结束的节点中来。那我在里边啊,写一下这个代码,咱们看怎么来做啊,我写一下步骤啊,首先第一步这里边是不是有这个任务ID,咱们先根据这个任务ID获取一下我们那个任务的对象,也就是里边这个task对象,这是第一步操作,然后这个之后第二步操作怎么做呢?咱们获取一个东西啊,就是根据我们这里边这个ID获取一个内容,这个内容是什么呢?就是咱们这个流程定义的模型,它的名字叫BP mn model。
03:31
我写一下啊,BP mn model,就是把这个整个的流程定义这个模型给它得到,就整个的部分都得到,然后这个之后我们看第三部分,第三部分怎么做呢?因为咱们现在啊,要把当前节点是不是直接到你这个结束点中来,所以咱们的第三步,第四步要得到当前这个流向节点和你最终这个结束的流向节点,把这两节点要得到,这是我们做的第三步写下啊,获取我们这个结束的流向的这个节点。
04:08
包括啊,在获取到你这个当前的这个流向节点,就当天在账单审批啊,把这个流向节点得到最终结束把这个得到。有这个位置啊,当前的流向的节点,这是第三步和第四步,然后这个之后我们第五步干什么呢?就是可以说是清理一下,比如当前我这里边啊,正常往下走,是不是应该到李四这个位置,咱们把它断开,就是清理当前活动方向,让它不到李四,直接到结束啊,所以第五步我们来做一下,就是清理当前这个流动的这个方向。啊,就让它不到里C的位置啊,给它断开。这是我们做的第五步,然后这个之后我们看第六步,因为现在我们让张三要到那个结束流程,所以第六步呢,怎么做,咱就创建一个新的一个流向,就让它到结束啊,把新的流向创建,然后创建之后第七步,把我们当前的这个节点,让它指向你的新的这个方向,就指向我们新的这个从张三到结束这个过程,这是第七步,然后最后一步,那就是完成当前的任务。
05:26
因为咱把流向已经改了,他一完成,那就由这个张三直接到结束啊,这是一个基本过程啊,那下面呢,按照这个步骤,咱们把这个代码来写一下,这个过程呢,确实步骤要多一点啊,我这里边一个一个给大家写一下,各位在自己测试的时候,你可以把我课件中的代码直接复制就可以了,我这里啊从零去写一下。首先啊,咱们看一下这个具体代码的编写,首先在里边的第一步操作,根据任务ID得到我们的任务对象,那我获取一下啊里边这个方法。
06:05
啊,有一个方法,它可以得到那个就是啊bef model啊,但是现在我们先得到任务啊,任务用的不是这个,应该用那个叫task service,这各位应该清楚啊,点上一个方法叫create task query,然后里边再加上这么一个方法叫做task ID啊,传入它这个ID值,我们点上一个叫这个single result,把当前的任务得到,这就是咱们的第一步操作完成,然后第二步呢,我们得到这个BPM model,就是整个这个流程定义模型这个里边用的这个Rep service里面的方法了,然后这个方法get,大家看这个啊B,然后这里咱们那个流程ID在task中应该有这个值,我们找一下啊。大家看这个叫。
07:00
Get里面这个就是它per DeFinition ID程定义ID,它得到就是咱们这个流程定义模型叫BP mn model啊所以现在啊,第二步我们就完成,然后完成之后下面我们看第三步,第三步呢,获取一下你那个结束流向,就最终结束那个流向节点,那怎么做我写一下啊,通过b model。点上一个方法叫get,这个叫,然后在里边再加一个方法叫这个find。我们找到find里面一个叫flow of type,我们找到啊,应该是就这个啊,Elements of type。然后在里边呢,传入一个什么呢,就是那个结束事件,咱们叫。点class。所以现在啊,把这个得到,就咱那个结束向那个节点,但是他得到的是一个list集合啊,咱给它起个名字啊叫and list,我们从里边把这个节点给它得到啊,当然这个可能是空啊,这里边我做一个基本的一个判断啊,它可能是空,是空的话我们就直接做个捋了。
08:19
加上这个collection.and如果它是空加,然后把这个节点给它得到啊,咱就直接用这个。Event就是and.get把这个值到。最终啊,它返回这个,然后呢,咱们加上它里边那个节点啊,因为这里有一个这个接口和实验的关系啊,咱给它加上,我们就给它强转成一个叫flow。这位置啊,就是flow,应该叫no来说这个流向节点node。
09:02
啊,依赖引入啊,这个位置我们给它就是。做一个。转啊,把它直接拿过来,所以现在啊,这一部分我们就完成,咱们啊看一下这两之间的关系,就是and event和flow的关系,其实关系很简单,你看啊,这里边啊,咱这么来看。大家看啊,在这个过程中,这个是flow no,然后这个是and,它们之间是这么一个关系。咱们看到啊,Flow note它继承了叫flow element,然后and继承了叫event,我们看它继承了谁,是不是这个nold,所以它们之间是一个子父类的这么一个关系啊,咱可以直接给它强转成这个flow nold这一表示得到我们这个结束流向节点,我们起个名字啊叫,然后之后呢,得到这个当前这个流向节点。我把这个来得到一下啊,然后在里边还是用这个。
10:03
BP m model里边有个方法。然后再加一个方法,Get,这flow element在里上啊,就是通过这个task。点上get,这个叫task DeFinition key,通过它得到当前这个流向的节点,我们把这个得到一下啊,然后这里边我还是叫这个no,还是叫这个名字啊。位置给做一个强,然后这里给它起个名字,我们叫这个current。No。这大家看啊,就是现在这个结束的这个流向节点和当前流向节点我们就都得到了啊,通过这个进行实现,这个咱们完成,然后完成之后我们继续往下来做,下面进入到第五步,第五步就是清理当前流动的方向,就是当前,比如说张三审批之后,应该到李四把这给他断开掉,让他直接到结束那个节点中去,那就给他清除一下啊,加上current float。
11:14
点上一个方法叫get out这个flows,然后点上一个叫clear,是不是就清除掉了啊,当然这过程中呢,你可以临时把当天活动的原始方向保存下啊,咱可能目前没有用到,咱给他也保存一下啊,用这个方法保存下。这个我就直接复制过来啊,就可以临时保存一下它那个原始活动方向啊,把这个保存到这里啊,到后面操作方便,然后现在这个第五步就完成了,完成之后第六步做什么了?因为咱们现在看这张图里边啊,我把这个流向给它清理掉了,那现在我们是不是要建个新的流向,让他直接到这个解说里面去,然后让张三这个节点指向解出这个流向,这下面啊来做这个事情,我们进入到第六步创建一个新的流向,那怎么做呢?在这里边啊,有一个对象可以进行实现。
12:09
这个对象是什么呢?它叫CIS flow,我写一下啊,SE。咱们一个名字叫一个。我们这么一个对象啊,这个名字,然后等于上一个在里边来设置它的相关内容啊,设置什么呢?就是你这里边的原节点,包括目标节点,就是从哪里到哪里,但是从当前节点是不是到结数节点,所以在里边做个设置啊,那我在里边set一下,首先第一个我们set下它这个ID址啊,ID值我就起个名字啊,比如就叫它了啊,New secret flow。然后之后我们继续来set一个什么呢?叫set,这个就是它那个节点,就是咱说的当前节点。
13:04
这个加上啊,另外还有一个叫目标的流向节点加上啊,Set里面这个叫target flow element,目标节点就是咱刚才那个结束的流向节点,叫andlo no,就刚才得到的这个啊,现在这就完成了,完成之后我们继续往下来做啊,下面做什么?咱把它就是放到一个粒子集合中去,然后当前节点指向这个新的方向,那咱们往下写一下啊,我在里边捏上一个例子集合,我们叫这个new secret flow。例子的啊,为什么写例子集合呢?因为大家明确啊,一个节点是不是能指向多个节点,比如现在我这个审批,张三李四都要审批,它这里边要指向两个节点啊,所以这里边是一个list集合上一个a list,然后向这个list里边来放我们刚才这个ciga这个对象。
14:03
上上一个啊意这个名字不要弄这几个,然后我们个指向,指向的话呢,用当前这个点一个S,加上咱们刚才那个集合,现在就完成了指向,让咱们张三审批,直接到这个结束界中来啊,用他当前这个流向。然后之后我们就完成当前任务,用task里面这个方法加上我们任务的ID。啊,所以现在啊,咱就把这个。拒绝,这个审批就完成了,就是咱们直接结束流程,通过这段代码我们最终进行实现。啊,所以以上啊,是咱们完成的这么一个过程啊。给大家把这步骤给他知道,然后这个完成之后,咱目前这个审批接口就最终完成了,那最后咱们通过前端把这功能我们最终完成测试,那最后啊,咱把它来试一下这个最终效果。
15:14
我现在呢,把这个后端接口服务给它启动起来,然后咱们来到前端最终进行测试啊,咱们等它先启动起来。这是后端接口啊,等待启动。然后现在来到前端啊,前端我们就直接啊把流程我们再快速走一遍啊,咱就直接用这个张三啊进入进入之后能看到就是当天他要审批这个就是相关这个信息,然后进入到详细页面,咱们点击通过或者点击拒绝,最终往后进行实现。那我们看啊,现在这个服务已经启动了,咱们来到这个界面中,我直接啊,就是点这个张三。是他啊,张三。然后在里边我们重新操作一下啊,首先在里边我直接到这个界面中,应该有一个叫这个二。
16:04
这个界面啊,然后在里边点击待处理。大家看admin发起的请假的最新测试申请,咱们点击进入到详情界面,在详情界面中我们点击审批通过进行测试,那现在我们来点击啊,首先我们看一下表里边啊,在咱表里边这个process里边,当前是这个信息,说din发起这个申请,等待张三经理审批,在record里边记录了一些信息,目前记录应该就是发起申请啊,他当前是这个样子。然后咱们现在开始往后进行啊,我现在点击审批通过,大家看这是完成了啊,但是这个还没有做啊,现在应该是完成了,完成之后这里边没有出错,那咱怎么看呢?直接就看一下表中数据变化,因为这个功能后续咱会。慢慢完成,还有一些值没有得到,其实你发现啊,我审批完成之后,是不是应该是到了这个里边叫已处理,能看到当前用户已经处理的这个任务信息,后面咱会实现啊,咱们现在先看一下表里边,首先啊看这个表里边大家发现啊有一个变化。
17:18
你看什么变化,是不是等待李四总经理审批,就是目前到了李四这个流程这里啊,然后再来看在瑞recall的里边这位置,我们现在记录了一条信息,就是张三经理已经通过,这是不是就完成了,所以现在我们到了这个步骤啊,然后现在这里边应该是李四需要审批,那咱把李四登录通过李四来看一下啊,就是看的更明确,李四就是这个啊,李四包括这值是咱应该用这个啊李四六,因为当时我们加的是他看一下啊,这个名字跟他对上啊。咱们看一下,当时咱这个生成这个流程文件中是这个李四,那我们用它生成一个token,咱们往后再试一下啊,四六生成token。
18:05
这是李四总经理啊,这个用户应该是有,那咱们打开那个GT的工具类,我在里边打开。然后里边写一下啊,这个值是六,这里边叫李四。用这个我们生成一个token,咱们等它进行出来啊,然后咱们继续往后测试一下。这是token,我把这个复制一下啊,然后来到咱们那个切换的T页面中,在页面中我们找到,比如里边这个。呃,第二个就是李四啊,这里边我加上一个叫。李四被告。然后李四咱下面把这方法改下,之前写了个的,写了张三这位置改一个李四。啊,这个啊,李四这里边把token值给他改一下。这个位置啊,我给它复制过来。
19:01
注意啊,这个空格问题不要多也不要少。所以现在啊,这部分应该就可以了啊,我把它保存下。然后保存之后,在这里边呢,咱们做一个切换啊,就是张总经理,我先刷新一下啊。张总经理,然后这是李四啊,里边有这么一个值,就刚才咱们加的里边的这个部分。也就是他啊。你看最后什么RNW这个值RW啊,这就可以了。包括张三李四,但目前李四啊,然后李四之后,我现在呢,来到这个界面中,我们来。在这个过程中找到这个例四二,咱们。在里边刷新,然后点击待处理,大家看啊,这里边是不是过来了,就是目前啊,是din发起申请,他目前已经到了李四这个步骤要有四审批,李四是能看到,然后咱们点击详情大家看啊,效果是出来了,是不是咱们想要就是这个样子,Din唤起申请,张三经理已经通过了,然后现在等待你李四审批,李四在审批最终是不是就完成了啊,所以咱们现在啊就完成了审批这个过程,咱把接口这些最终进行了实现。
20:18
以上啊,是咱们做到这个审批的过程。
我来说两句