00:00
各位同学大家好,在刚才内容中呢,咱们完成了查询用户待处理任务,然后下面呢,我们继续往下实现,那怎么来做,给大家做一个分析,然后咱们开始往下来编写代码。首先啊,大家看一下我们之前画这个流程图里边清楚的分析到了我们当前这个执行过程,咱们第一部分查询审批分类和对应的审批模板,然后第二部分选择某个模板填写信息,然后在这里边提交审批,提交审批之后我们就会启动一个流程实例,并且记录相关这个提交信息,然后之后呢,我们在里边一提交,咱们可以审批人中可以查问到你的代办任务。比如说大家看啊,我当前这个过程中,咱们是用的in发起的这个请假申请,然后他发起之后,我们用张三用户登录,张三在他的待处理这个功能中,是不是能看到我的in发起这个请求,然后张三对他可以进行审批,对咱们下面的往后来做,那怎么做呢?我们说明啊,首先。
01:10
张三登录之后,在待处理中看到这个信息,他一点是不是要进入到一个详情页面,就是详细看一下里边这个审批这个信息,然后他看到信息之后,咱们点审批通过,或者说审批拒绝,那下面呢,我们往下来做。首先我们要实现的这功能就是审批详情,也就是现在张三点这个信息之后,能看到审批的详情信息,那咱们下面来编写下这个接口,把功能最终整合出来,也就是张三点它看到详细信息,那咱们啊把接口我们开始写一下啊,现在呢,我来到这个CTRL里边,在里边编写接口。查看审批详情信息,然后在里边我们加上这个方法,咱们加上一个get提交。
02:06
然后在里边给它起个名字,我们就叫这个受,就是显示详情里边传入ID。这个ID呢,特别说明啊,咱们之前呢,在这个就是我们就是这个部分啊,提交这个之后,我们查这个代办任务,然后代办任务中它会返回这个信息,咱们看一下啊,之前我们写那个代办任务那个接口也就这个接口。我们啊,找到这个方法。把方法咱们点开,然后大家看啊,这里边呢,会返回一个对象叫process VO,而process view里边有那个IDID实的IDID,据b copy pro把这个对象中的值复制到view对象中去,所以这里边它的ID就是process ID。
03:04
现在啊,这个我们就写到这个方法啊,然后下面呢,我们继续往下来写。我们下面呢,加上一个public。然后给它起个名字,就叫这个,在这个方法中到它这个ID,就是咱说那个流程ID,或者说叫process ID,因为咱之前那个任务把已经过来了,那我们加上这个pass,加上类型的ID,加上之后呢,咱们调用service中的方法进行实现,那我来调一下啊,Process service加个方法,然后传入ID,最终呢,我们让它就返回一个map集合。我这里说明啊,为什么返回map集合呢?其实返回别的类型也可以,但是map集合会特别方便,因为大家清楚KY6键值对的形式,不管你是放值还是取值都是很方便的,所以咱们就返回一个外部即可。
04:08
我加上string,加上object,然后最终我们做一个把这给到最终返回一下。result.ok然后里边。传入一个map,所以现在啊,CTRL部分我们就完成了,完成之后呢,咱们在service里边把这个方法进行创建。查看审批奖金信息,最后来到它的实现类中,我们最终把这个方法做实现。咱们在实现内种啊,写下这个方法,那这个方法怎么做呢?还是按照我们一贯的这个习惯啊,我先写一下它的基本的步骤,然后咱们一步一步进行实现。那这个实现步骤中呢,首先第一步操作大家看啊,我这里边是个ID,那咱可以根据我们这个流程的ID获取到我们个流程的信息,也就这个这个象的信息,这是我们的第一步,把这个得到后面显示使用,然后这个之后我们写第二部分,第二步怎么做呢?同样啊,根据里边这个流程ID。
05:22
可以获取一下我们这个流程,提交这个相关的记录的信息,比如说当前啊,谁审批了,当前谁通过了等等,得到这个记录信息,这两部分中我们要查个表呢,第一个查这个表,根据ID把这数据查到啊,比如说IDID查到,然后第二根据ID查这个表,根据来查询,因为里记那个提交的信息,比如说谁审批啊,谁申请等等。这是第二部分,为了咱们显示用啊,然后第三部分呢,我们再做个查询,查什么呢?根据咱们里边有个叫模板ID,就是里边那个ID啊,根据它来查询我们那个模板的信息,因为模板里边有些内容咱需要查到,为了最终显示使用这个模板,我们可以通过这个process里边给他得到,然后大家看啊,在process这个数据终。
06:24
有一个字段叫ID根据来查到模板信息啊,这是我们三步做的查询,然后这个查完之后我们看第四步操作,第四步做什么呢?给大家说明啊,因为现在我们这里边要看到你的审批这个详情信息,但是各位明确啊,就是实际中呢,我们能看到这个信息的人,他不一定能审批,有的人可能能看到,但是他不一定能审批,所以咱做过判断。判断什么呢?判断我们的当前用户是否可以进行这个审批,就是刚才提到这个特点啊,我这里也标注一下。
07:06
什么特点?可以看到这个信息的人,他不一定能审批,就是他不一定有这个权限,所以咱们要做这个判断啊,另外我审批中也不能做一个重复的审批,我已经批过了,那就不需要再批了,这里边我们也做一个处理,那咱一会儿通过里边这个方法查询个任务,根据它做判断,就是咱之前写过这个方法,当前任务啊,用task service查询。然后这个之后,我们到最后一步,把咱目前就是查询和这些数据啊,给它封装到一个map集合中,最终进行返回,所以以上啊就是咱们写的这个审批详情的基本步骤,那下面呢,按照步骤我们把这个代码咱们来写一下啊,那咱们做一个具体事件啊,就是编写一下这个代码。
08:01
首先啊,第一步根据流程ID,咱们查一下流程对象,那这里边我直接查一下啊,用base map中的方法select白地最终返回一个process对象,这就是我们的第一步来完成,然后咱看第二步啊,第二步根据这个ID得到你这个流程的记录信息,就是里边那个叫process record对象,但是这个流程中它的记录信息可能一条也可能多条,所以咱返回的应该是一个历集合,那这里边我写一下啊,我加上一个拉DA rapper,然后加上这个record,注意不要加错啊,等于上一个DA rapper。这是第一部分,你这个对象new完对象之后,向里边呢,设置它的条件,那我来设置一下啊。Record。
09:00
然后加上里边它这个叫ID传入ID值,现在条件就完成了,完成条件之后我们来调一下这个方法进行实现啊,咱们调这个process record service中的方法,这个service之前咱们已经注入过了,现在咱就跌精使用啊,那我回来咱们继续来写一下啊。Service里边有个方法叫list,在里边传入rapper,现在就得到一个集合,这个集合是咱们当前这个流程中所有这个记录的信息,包括谁申请,谁审核等等啊,这个咱给他得到,这是我们的第二部分完成,完成之后呢,下面我们看第三步,第三步呢,把这个模板的信息给他查到,那这里边我来查一下啊。我们调用process service里这个方法叫get,然后入模板ID,通过前面这个直接到刚们看到里有字,最得到这个。
10:13
所以现在啊,前三步咱就完成了,分别查出了相关的信息,这三步完成之后,下面来看第四步,第四步呢,就是判断一下当前用户是否可以审批。看到的信息的人不一定能审批,另外咱也不能重复审批,所以咱们来做这个处理啊,那怎么做呢?这里边啊有多种实验方式,我这么来做啊,说一下我的思路,首先呢,我加上一个布尔类型的变量,比如叫意思,这个就是是否能审批啊。咱们等于这个。False,如果说他能审批把这值就改成啊,通过它咱后面会做判断,前端也是用它做一个处理,就这个approve啊,为了前端方便啊,这个名字我跟这个课件中保持一致啊,咱就叫这个名字。
11:08
这个啊,你不一样,也可以指前端后面,咱这里边脉搏中力还要改,但为了前端不需要改,咱就要跟这些名字保持一致了啊,所以现在这个完成完成之后往下来写啊,下面咱进行查询,查询当前这个用户他要处理的任务,那怎么查呢?之前咱是不是有这个方法呀,我们根据这个方法直接查就可以了,然后这个方法中传的是什么,各位明确啊,你看的是什么?是不是你这个流程实例的ID根据进行查询,所以咱们把这个来写一下啊。我在里边调方法。this.get current task list加上那个流程实例的ID,我们通过可以得到在里边有这个流程实例的ID啊,就是有这个,咱把它得到,也就是它这个流程ID之前提交这个。
12:08
所以现在把这个传入之后,最终返回的是一个list集合,咱们叫这个task list。这步完成啊,完成之后呢,下面把这个历次集合,我们进行一个遍历,然后遍历之后在里边做这个判断,那咱们啊给他遍历一下啊。我加上这个task。后面是task list,得到里边的每个任务,然后得到每个任务之后咱们做个判断,判断什么呢?就是判断这个任务当前这个审批人。是否是我们当前的这个用户,比如当前任务是张三审批,看一下当前用户是否是张三,如果是的话,这个值变成处,不是的话那还是false,所以现在我们来做这个判断啊,加上这个if。
13:03
然后在if里边我们加这个叫task,点上个叫get,之前说过啊,点上equals,加上当前的用户,当前用户呢,咱之前有一个工具类叫log in user help啊,我把这个咱拿到外边来啊,咱看着方便得到当前用户,然后里边叫get username。把当前那个用户名得到。然后把这个咱们传进去啊,如果说我这个任务的神秘人就是当前用户,咱就设置这个意思,OPRO5的值等于处就可以了,所以现在啊,在里边我们就做了一个判断啊,这步就完成了,以现在前四步都做到了,做到之后呢,进入到最后一步,第五步,我们把数据最终都封装到一个map集合中就可以了。我们加上缀。
14:00
Object。然后加上map,等于上一个哈希map,向map中来put,它相换数据啊,就是里边我们这几个值,包括流程对象,记录的这个集合模板对象,还有这个approve,是否它可以审批,把这些都放到map中就可以了。最终我们做一个退。啊,这个放的过程呢,我从里边就复制了啊,就是往里边铺的这些值,为了前端方便,这里我复制过来,让它的名字啊跟这课件中保持一致。除此之外,应该还有一个叫is approve。是否进行审批?这个也放进去啊,所以咱们现在啊,到这里把这个接口我们就完成了,然后还是我提到的啊,一些细节不要写错啊,比如说你这个别忘记啊等等,现在啊,咱们就完成了这个查看审批详情的接口,这个咱就讲这里啊,然后前端我们这里边都整好了,咱下面就直接进行测试。
15:06
那咱们测试一下啊,现在我把这个服务给它重新启动一下,然后咱们到前端中,最终来试一下这个效果啊,等他先起来。然后启动之后怎么测试,其实就是张才我们这个页面啊,刚才我们在这里边大家看,我现在是用张三登录,张三在待处理任务中能看到他目前要出去的任务,这个任务是由我的面给他发起的,然后他点击就能看到详情信息,这里边啊,我们把数据都查到了,在前端里边他做了各种的显示。啊,前端中都已经处理到了啊,咱重点就写下这个接口就可以了,那咱们啊下面看一下啊,我先刷新。点击待处理,这是张三看到的我的me给他发起的,现在我点击这个信息,大家看啊,我们目前的效果会怎么样啊,咱们看一下啊。
16:04
大家看到数据是不是出来了啊,这些数据都是咱查出来,只是前端做一些显示,这些你看啊,Din发起了请假,最新测试申请啊,就是故意写这个名字,然后包括目前状态是审批中,它里边的信息就是天数是两天开始结束时间,包括原因是生病,然后流程中,目前din这个流程中发起了申请,所以现在啊,这个详情就完成了,然后完成之后我们往下看,然后后面干什么。是不是做这个审批通过或者审批拒绝,如果说审批通过,那他到下一个节点,如果审批拒绝,那直接直结束这个流程,那这个呃,Din再重新填写,重新发起这个申请,所以现在啊,这个做到了啊,但是因为呢,我们这个界面最终显示会在那个微信公众号,就是手机上显示,咱目前看这界面可能涨到它不太合适啊,这个比例可能不太好,后面咱们可能都是在微信公众号做到,咱目前为了方便先用网页端进行测试。
17:08
但是目前这个详情信息已经进行了显示,那下面咱就开始做这个功能,审批的功能,包括通过,包括拒绝。
我来说两句