00:01
各位大家好,我们继续来开发查询排班规则数据,刚才呢,咱们完成了里边这个分组,包括统计,包括求和这个操作,最终得到了我们这个数据,那这数据是一个历次集合,那咱们下面继续往下来做,比如说啊,这个名字咱给他稍微改个名字啊,改的正式点,我们叫这个不。筛掉入了VO。例子,这是得到我们的集合。然后得到之后,我们下面继续往下来做,因为咱们啊,这里边要做的是分页,所以咱要得到就是我们分组查询之后。里边那个就是总的一个记读数,这个我们需要得到,那下面咱们把它就来得到一下,写法跟刚才应该说差不多,那我们用它快速写一下,用这个aggregation,比如说咱们起个名字,我就叫这个total。Ad。然后在里边呢,我们调用这个方法,就刚才我们写的这个方法和刚才一致。
01:05
在方法中还是咱们的结构,第一个结构就是这个aggregation。点上这么一个方法,我们叫这个match加这个criteria,因为咱们要得到记住数目,然后里面第二个就是aggreg。点上一个叫group,加上咱们那个分组字段,我们的字段叫做work date,现在把这两个拿过来,然后这部分完成的,完成之后呢,咱们下面调一下方法,最终得到我们这个集合,然后最终通过集合里面的size是不是得到它的总记数数,那下面我们来写一下,用这个改一下啊这个名字,比如我改个名字,我们叫这个total。A gd result,然后咱们通过这个total ad result里边这个方法,就是咱们刚才用过这个方法,我们来做个调用get。
02:01
这个。Map result,点上size,大家看得到它的size是不是,你一共有多少条记录,起名叫total,这样的话,咱们把这个分组查询之后的总计数数就得到了,然后得到之后呢,我们继续往下做。大家注意就是现在其实数据都已经有了,但是在我们这个集合数据中,各位看到在这个view里边呢,有这么一个字段,这个叫day of week,什么意思,就是当前日期是哪一个星期,而各位看到在我数据库存的里边。并没有存入咱的这个星期,只存了日期,所以下面呢,咱要做个处理,就是把里边的星期变成咱们这个对应的这个星期的值,就是我这日期,比如1月28号是星期几,1月29号是星期几,咱们需要把这个值来处理一下,因为咱后面显示中要把星期几做一个显示,那我们来做一下下一个操作。
03:02
我在里边写一下啊,就我们这个位置。我们做件事情就是把我们的日期。对应那个就是星期。给它获取出来。比如说我现在1月28号星期几获取出来,1月29号星期几获取出来,那我们来做一下,再看怎么做啊,就是现在这里边呢,有一个利集合,那我们做法就是把例子集合做过便历,然后取到里边的每个日期,根据日期得到它的星期是不可以了,那我们来写一下啊,就这个booking。筛入了VO,然后里边我叫这个booking schedule入了VO,后面咱加个冒号,就是我们这个list集合,然后历次集合得到之后,咱下面得到里面那个日期,通过日期去掉它这个氢期。那这个怎么做呢?大家看啊,首先比如说我们举了一个日期,然后日期呢,就是用里面这个方法叫work date得到是不是日期啊,反回就是一个date类型,然后这个日期呢,要换成兴起做法有很多种方式,然后大家看我这里做法啊,看一下我的课件中,我课件中呢给大家写了一个工具类,那这工具类我就给各位直接复制过来。
04:21
咱用它直接用一下就可以了。然后咱们看一下这工具类应该很简单啊,在工具类中呢,首先我们用了这么一个对象叫date time date time呢是咱们一个日期工具类一个依赖,那这依赖目前应该是没有,咱把依赖给它引入一下啊,就这个依赖,目前没这依赖,那怎么引入呢?我们先看一下,在咱们这个富工程的po物文件中有这么一一栏,就这个。然后咱们看最下边啊。应该是在。这个位置,所以咱们现在用的应该就是这个依赖,然后把这依赖先引入进来,然后才能使用,那引入到哪里呢?其实咱可以放到我们这个service hospital里边,但是我们的其他模块可能也需要用,所以咱给它为了方便,我就放到我们这个common里边,在common中加这个依赖。
05:12
那要加一下啊,Dependence dependence我们叫这个。Go time把这个再给它加上。然后加上之后呢,在这里边我们变得就用下这个依赖啊,就是里边的这个依赖给他先先给他。等它加料完之后啊,咱们给它引入进来。这个依赖。然后大家注意啊,就这个goda time这样的话,我们这个工具类就复制完成了。然后复制之后,这工具类咱看一下啊,这里边是怎么写的,它做成是一个什么样的效果。咱们看到首先我的参数是data time,然后datatime里边呢,下面我加了一个Switch case,做了一个判断,当里边这个值,比如它是这个study,就是这个周日,包括Monday周一,以此类推,所以咱们看到就是通过这个传个data time,然后判断里边到底是周几,比如周一周二周三还是周日,最终把值做返回,所以咱们现在在里边给他就处理一下,那我们看怎么来做啊,咱做法就是调用刚才咱们那个工具类。
06:24
Get day of week,然后里边呢,直接new,这个叫datetime。我们来写一下data time,然后在datatime中呢,传入咱们那个work date,最终返回值就是咱那个经济体这么一个数据,这样的话咱们就完成了调用。完成之后呢,咱们把这个最终得到的星期给它叫set到咱们这个VO对象中去,那我做一个set,就是day of week,把这个day of week这个星期几给它塞载进去,这样的话,咱们把这个数据就完成一个转换,把你的日期得到它对应的星期,然后这些呢都得到之后呢,最终咱把这数据是不是要做个返回哟,因为咱目前会有多个数据,那我最后返回一下。
07:14
怎么返回,我们来看一下啊,我写一下就是设置咱们最终的这些数据,然后进行返回,因为咱们目前呢,要返回的结构是不是一个外部集合呀。所以说我在里边呢,我就先溜出来一个map即口,那我来扭一下啊,我就叫result。等于new上一个哈map,然后咱们向map中放它的数据点上一个put,首先第一个数据就是咱们刚才里边这个历史集合,就是这个数据,我把它先做返回,那我给它写下这个数据。我们给它起个名字,Book shadow ruler。这是第一部分是咱那数据的集合,然后除了它之外,里边有第二部分,就是咱刚才得到那个分组查询之后那个总记录数,我们是这个total,它的值,这个total,这是里边的第二个数据,然后除了这个数据之外呢,下面我们应该还有其他的数据,然后这个数据是什么呢?大家注意啊,因为目前这里边呢。
08:21
我们在操作中除了这两之外,比如说我们还想显示我的医院的名称,包括一些其他的数据,那这些数据我们也可以做到啊,那比如说我们下面就来做这个操作,咱们就是获取一下我这个医院的一个名称,把这个数据我们给他也是得到一下,那医院名称怎么得到呢?我们这里边肯定没这个方法,所以咱们需要调一下另外一个service中的方法,把这做个实现。然后把那service再给它注入进来啊,我这里注一下。加上一个O,然后加一个private,这个好。
09:03
Service,好,Service,咱们在hospital service里边,就是根据我这个医院编号,把那个医院名称咱给他就拿过来,那我在里边咱先查一下啊,比如说一会儿我起个方法名字就叫get这个host name里边传入这个医院的编号,最终让它返回到就是咱们那个医院的名称啊,比如叫这个瑞。咱们叫hos name这个方法又来写,然后写完之后,咱们把它也是放到我们的麦和结构中去就可以了啊,咱就来做这么一个事情,而这个放到里边呢,大家看我课件中的是这么一个写法,你注意啊,就是我现在呢,又重新用了一个新的map,然后把这map再放到这个轨道中,就是把这个名称放到map中,就是我就这么来做,不这么做也可以啊,这么做为了咱后面这个结构更加清晰,所以我就按照我课件中的流程把这个写一下啊,然后写一下。
10:05
我叫base map.put里边起个名字hos name hos这个name。就是我们这个名称。然后咱们把它也是放到我们的。Result里边我们就要这个base map啊,它的值就是这个。Base map,然后最终把这个result咱做个返回就可以了。这样的话呢,我们现在把这结构就完成了。这个结构完成之后呢,咱下面把这个方法给它快速完成,根据医院编号获取医院的名称,那现在我在这个hospital里边,把这个方法我们给它快速完成出来,就是里边的这个方法。然后在里边我们来快速写一下啊,根据医院编号得到医院的这个名称,那咱们调用hospital report里边这个方法,方法按照咱这个规范写法,那我写一下就是get这个。
11:10
好PBY,好扣,之前咱们写过,然后这个方法我们来传入参数,最终返回的是一个好劈的这么一个对象,咱们通过这个对象是不是取到里边那个名称就可以了,那我现在把它取它就可以了啊,但是这位置呢,给它做个判断,如果说这对象不等于空,那咱们就直接返回它的名称。我写一下啊,不等于钠。咱们就直接瑞return好的Peter,点上这个get hos name,这样的话咱们就完成了这么一个结构,而咱们再回到刚才的service中,这些结果应该都写出来了,这是关于我们开发这个接口,根据医院编号还有这个科室编号,得到我们的排班的规则数据。而在数据中大来看一遍啊,首先我们先设置两个条件,然后根据这个work这头做分组,另外里边统计的耗源数量,最后做分页。
12:13
然后这个之后呢,我们得到这个集合,得到之后再得到分组之后的总记录数,包括把日期变成对应的星期,这些数据最终都放到咱的map机构中,然后通过map集合把它返回就可以了,所以这是咱们完成的这么一个接口开发,咱们就做到了,然后接口做到之后呢,咱们下面可以把它做个测试,就看一下最终的效果什么样的,那我们来测试一下啊,首先我把这服务器给它先重新启动一下,然后咱们打开swag就来测试一下,看一下它的效果到底是怎么样的。啊,比如说打开找一下数据啊,在这里边就是咱们随便找一个我这个医院的编号,包括这个科室的编号,然后咱们查询里边对应的数据就可以了。
13:05
那咱们啊,这里边我先重启,然后咱们等待启动之后我们测试。好,现在服务器启动了,然后咱们打开swag,我们做一个最终的测试,看一下最终的效果到底是怎么样的,那咱们来测试一下啊。我在里边输入IP和端口号8201加这个swagger。咱们把它打开,找到刚才写这个筛controltrler,然后咱们找到接口里边传入四个参数,第一个当前页,第二个哪些技术数,然后第三个医院编号,第四个科室编号,那医院编号、科室编号咱们到数据库中找一下,比如说医院编号我们是这个。就是100_零,把这个拿过来。第二个科室编号,就是里边的这个值,我把它分过来,然后到我们这位置,这些值都有之后,下面咱们点tryout,然后各位看效果,最终结果是不出来了,在结果中大家看啊,首先我刚才写的第一部分是那个院名称啊,但是单独放在这里,我后面更加结构清晰,然后像这部分。
14:19
就是你的预约规则信息。然后各位看,首先1月28号星期四,然后这里边有它一些数量,包括27号,26号等等,是不是有各种日期,然后它里边做了显示,所以这样的话,咱目前把这个就完成了接口开发,然后这个完成之后,这过程给各位再来重复一遍,因为过程要稍微麻烦点啊,首先做法就是咱根据这几个参数,医院编号,课程编号,先设置条件,然后下面做这个根据work data做分组,分组之后其实这个位置啊,Do和count,具体说应该是你那个就诊的医生数量,比如我们这一天有多少人,多少个医生要出诊啊,具体说是这个值,或者说你看到我们这个VO这个类里边。
15:07
是不是这个就诊医生数量,然后这里边用抗得到下面是统计你这个号源的数量,然后这个位置做排序,包括最终咱做分页,这些都做完之后调用方法,最终得到预约规则的粒子集合,这部分是得到分组之后那个总的记录数,或者说总数量,比如你看我这里边得到它的总的数量就是一共啊,就是里边的这么五个数量。然后除了这个之外,下面咱们又是把那个日期换成了星期,咱们写的工具类也做了一个设置,最后我们把结果给它都放到一个map集合中去,然后把map集合返回,最终咱们看到的就是里边的这么一个结果,包括你看啊,就是我们这个院在里边。这个科室中有相关的这些就是预约规则信息,比如这一天哪些信息,这一天哪些信息,这样的话我们就完成了关于这个接口开发,然后接口开发完成之后呢,咱最后做的在页面中的这个位置,把它是不是要显示出来呀,所以咱们一会儿就来做这个显示,目前呢是把这个接口我们就完成了开发。
我来说两句