00:00
接下来我们再来编写商品库存功能,那这个功能呢,主要我们可以按照仓库的ID或者SQ的ID,或者他们两个结合起来,可以查询某个SQ在某个仓库保存的这个库存数量,那我们这个呢,按照接口文档,它会发送where where SQ list请求,主要会多携带一个仓库的ID和SQ的ID,比如我们来F12来看一下我们这个接口,比如我们选中某一个仓库加上某个SQ,我点一个查询,那发请求呢,就会携带上这两个数据,那我们就应该将以前逆向生成的这个方法来多添一个查询条件,我们来到找一下VR SQ VR SQ controlrler,我们来找这个controlrler list,这是它原来的这个检索查询,来多添上这两个查询条件,这个查询条件呢,我们就直接给它构造出来,我们放到外边。这个查询条件呢,也是一个,并且关系好,所以我们在这判断if,如果我们第一个条件首先从里边点get我们的SQID是有的,那我们就按照SQID去来进行查询,好,我们这是一个string。
01:19
我们来判断if string UUS,我们来检查一下is empty,我们的SQID不是空,不是空呢,那我们就来进行这个查询,我们给corry waper呢拼装上SQID的这个查询条件,我们ECOSQID主要看我们数据库里边对应的这一列VRSQ里边有一个SQID,那就是商品ID,商品ID呢就是我们指定的这个商品,如果我们带了仓库ID,那就是查我们这个指定仓库里边指定商品的这个数量,好,我们也可以在这来写一个。G直接把这一块复制过来。
02:01
这一块复制过来,接下来我们要获取这个仓库的ID,同样来进行一个判断,那么这个判断呢,如果仓库的ID不为空,我们也可以拼接上仓库ID的这个查询条件好,我们把这个仓库ID呢复制过来,我来直接启动,我们先来测试我们这一块对不对。好,我们把这个控制台清空,我们来注意circleql语句,我现在来点击一个查询请求,然后发送circleq的时候呢,会带上SQID和where ID来看SQ语句,那我们这一块呢,就是SQID等于什么,并且VID等于什么,只不过我们现在没有任何一个商品有一个库存,那我们怎么添库存呢?那逆向生增的这一块有一个新增在新增,比如我新增个一号商品,在这个一号仓库库存存了十个啊这个SQ的名字,比如我们就叫华为吧,我点一个确定,但是我们肯定不是这么来加库存的,包括想要修改库存,我们在这来修改上100个,这一块呢,看似快捷的这个增减库存。
03:06
操作是没问题的,如果我们来到这个商品管理,联动起来,我把这一块清空掉,我来找中了这个一号的商品,SQ来点一个更多,我们来选中它的库存管理,那我们可以来直接查出这块,直接带了一查出一号的,同样的我们来查二号,如果我来找库存管理,它会自动跳过来,来找到库存管理,它自动跳过来,来查三号,但是三号我们没库存,但是我们新增库存呢,不是在这儿新增,这只是相当于对数据库的一个可视化操作界面,这快捷操作对于我们整个库存系统来说,有一个重要的业务叫采购单,也就说我们很多东西呢,是由我们采购人员采购进我们仓库的,这就是我们这些自营商品的特点,采购人员先按照采购单里边的商品数量要求我们采购进来,只要采购成功以后,这些商品我们可能会有相应的硬件设备,比如采购人员采购成功了进入这个仓库。我们一。
04:06
扫码成功,那我们把货放到货架上来,自动进行入库,当然我们不能模拟整个这个硬件流程,那我们这儿可以有一个采购单,我们所有的库存可不能是在这儿直接整一个修改。我们所有的库存呢,都是应该由采购完成以后我们自动加上去的,当然我们可以在测试期间暂时保留这两个功能,为了我们修改方便,那采购单的完整逻辑呢,是在这儿我们先来点采购单,在采购单呢,它是一个完整的采购单,但是我们先要新建一个采购需求,我们想要采购哪些商品呢?这些采购需求呢,会有几种渠道,首先第一种是我们人工在后台建立了一个采购需求,第二种是我们系统自动的发出了低库存预警,并且创建出了这个采购需求,也就是说人人工和自动化的这两种采购需求。所有的采购需求呢有很多,比如我们每天采购人员七点出发和晚上七点出发,分别来采购上一天和咱们这个当天的这些财产品,那他就要依据这个采购单,而采购单里边呢,其实就是我们所有的采购需求,这就类似于我们订单,一个大订单里边要订哪些货,这。
05:20
是有我们这个,那我们采购单也一样,所以我们想要采购,我们就得新建采购需求,我们来点击新增这一块呢,就可以来新增一个采购需求,首先我们要填写我们需要采购的商品的ID,包括我们要采购的这个数量,比如我们采购十个,包括我们的选择的这个仓库,一号仓库,这是一号采仓库要采购的十个商品,好,我点一个确定。那么这个采购需求就创建出来了,那默认呢是一个新建状态,那这些采购需求呢,最终需要合并成一个采购单,因为有可能我们一号仓库发起了非常多的这个采购需求,比如一号仓库啊,那我们还要采购三号商品,采购两件,那我们就可以将整个这个采购需求,这两个采购需求全部合并到一个采购单里边,所以这一块呢,我们就有一个操作叫合并整单,那么下节课呢,就来做这个功能,那首先可以把我们采购需求的这个检索,我们在这儿写一下,这块检索呢,主要还会传一个仓库的ID和采购需求的状态,以及我们关键字的信息,那么希望呢,能拿这些信息进行检索,MYF12看一下控制台,那么来点击查询,它会来发送我们这个请求叫。
06:36
We purchase detail,我们这个list,那我们来参照接口文档,也就是我们查询采购需求,主要会多带一个status状态和仓库ID,我们把这两个复制过来,好,我们来看一下这一块,我们来到我们的where,我们来到它的controller。我们采购的详情,这就是我们的采购需求,这个采购需求的controller,这有一个list查询,这个查询呢会多两个数据。
07:07
好,我们来把这个qua upper呢,我们来提出来,这是我们将要查询的条件,把这个rapper拿过来。那这个rapper我们复制放到这。我们现在呢,要给这个upper来指定条件,首先我们得判断我们给定的这些状态,我们从点一个get,我们首先会有一个模糊检索的字段K,好,我们把这个K呢先放在这string。包括呢,我们还额外再会带一个我们的仓库ID和status,那我们把这些判断都先写完,String,比方is empty,我们带的这个值不能为空。那不能为空呢?我们就给它拼接上这些查询条件,Cor upper,点一个E口。我们这个条件呢,由于这个K是一个模糊检索,所以我们来到这个采购需求表,就是这个DTL表,我们可以允许让他按照SQ的ID或者采购单的这个ID,我们都可以进行模糊查询,那仓库ID和这个status呢,那都是额外携带的,这个查询条件好,我们先可以给他把这两个字段给上,一个是我们的这个采购单的ID,必须等于我们指定的这个值。
08:27
或者,或者我们的这个SQ的ID等于我们指定的这个值。当然由于我们这个条件呢,要跟别人进行一个整体拼接,我们把这个或者这一块拿过来,那要写成一个一口好,我们这个条件呢,要跟别人进行拼接,所以我把这个条件我先剪切过来,我应该是一个and,然后我们用它的这个wrapper。那给这个rapper后边呢,我们来拼上我们刚才的这些条件好。
09:01
它两个或是一个整体,那其他的呢都一样,我把这一块获取过来,那还有两个字段,一个是我们状态status,我们在这判断,如果这个status是不为空的,那我们还要做status,点一个E,我们这个status呢,在数据库里边有一个status字段,必须是我们指定的值,好还是我们这个status。另外还有我们的这个仓库idvr ID,把这个仓库ID我们也拿来判断一下。在我们数据库里边呢,有一个叫VRID这个字段。我们来拼接这个查询条件,Cor upper.e仓库ID必须等于我们这个仓库ID,那么这个采购需求的这个查询我们就写好了,包括这个新增,我们就用默认的生成的这个新增,当大家可以在这一块呢细化一下页面的相关效果。
10:00
我现在来查一号仓库,已分配的我点查询。那肯定是没有数据的,那我们可以把这个状态清空掉,一号仓库的采购需求有两个,包括我想查一号商品的这个采购需求,我点一个查询,哎,那这也有,那这就没问题了。
我来说两句