快捷搜索:  汽车  科技

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)asyncfunctionrunProcess($model=model $plugin=plugin $params){ letlist=$params.list;//生产订单明细 letorderid=$params.order._id;//生产订单 letrequire_list=[]; /*物料需求列表 [ { id:"物料id" demand:"总需求数量" } ] */ for(leti=0;i<list.length;i ){//遍历生产订单明细collection letquantity=list[i]["5fd1cc619f7ebc78933d9a2b"];//计划生产量 //查询产品的BOM列表 letbom_list=await$plugin.data.queryData("5fd1cb6c042842

目标:

创建生产订单时,系统自动根据产品所需物料库存是否充足,如有物料库存不足,自动生成对应的采购订单;

实现环境:

白码低代码开发平台;

前期准备:

需创建产品、物料、BOM、生产订单、生产订单明细、需求物料、采购订单、采购订单明细数据表,这里就用最简单的数据表进行演示,实际情况可按照需求添加属性

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(1)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(2)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(3)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(4)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(5)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(6)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(7)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(8)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(9)

数据表关系图

实现步骤

新建一个功能,命名为“新建生产订单”;

①第一步,新增生产订单,使用新增数据的步骤,根据实际情况调整属性的设置;

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(10)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(11)

②第二步,新增生产订单明细,使用新增集合的步骤,填写需要生产的产品和对应的生产量;

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(12)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(13)

③第三步,计算第二步所有产品所需物料的合计值,录入到“需求物料”表里,这里涉及多条数据的合并去重,需要使用编程的步骤;

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(14)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(15)

asyncfunctionrunProcess($model=model $plugin=plugin $params){ letlist=$params.list;//生产订单明细 letorderid=$params.order._id;//生产订单 letrequire_list=[]; /*物料需求列表 [ { id:"物料id" demand:"总需求数量" } ] */ for(leti=0;i<list.length;i ){//遍历生产订单明细collection letquantity=list[i]["5fd1cc619f7ebc78933d9a2b"];//计划生产量 //查询产品的BOM列表 letbom_list=await$plugin.data.queryData("5fd1cb6c04284278923ac9a7" { "5fd1cb8404284278923ac9a8":list[i]["5fd1cc429f7ebc78933d9a2a"] }); for(letj=0;j<bom_list.length;j ){//遍历bom列表 //查询物料需求列表中是否已有物料 letitemIndex=require_list.findIndex((item)=>{ returnitem.id==bom_list[j]["5fd1cb9204284278923ac9a9"]; }); if(itemIndex>0){ //物料重复,去重,增加数量 require_list[itemIndex]["demand"]=newNumber(require_list[itemIndex]["demand"]) newNumber(quantity)*newNumber(bom_list[j]["5fd1cb9804284278923ac9aa"]);//产品计划生产量*物料用量 }else{ //新物料 require_list.push({ id:bom_list[j]["5fd1cb9204284278923ac9a9"] //物料id demand:newNumber(quantity)*newNumber(bom_list[j]["5fd1cb9804284278923ac9aa"])//产品计划生产量*物料用量 }); } } } for(leti=0;i<require_list.length;i ){//去重完后,录入到需求物料表 letform={ "5fd1cc8d04284278923ac9ad":orderid //关联生产订单 "5fd1ccad9f7ebc78933d9a2c":require_list[i]["id"] //物料 "5fd1ccb39f7ebc78933d9a2d":require_list[i]["demand"]//总需求数量 }; //保存数据 await$plugin.data.saveData("5fd1cc8204284278923ac9ac" form); } }

④第四步,获取上一步新增的需求物料集合,使用获取集合的步骤;

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(16)

⑤第五步,计算缺货数,使用关联获取集合的步骤,获取第四步进行计算,其中缺货数属性设为物料的需求数量-库存数,且隐藏此步骤;

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(17)

⑥第六步,判断是否有需求物料的缺货数小于或等于0,使用条件判断的步骤;

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(18)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(19)

⑦如果判断结果为假,即存在缺货数大于0的物料,则需要生成采购订单,第七步先获取缺货数大于0的物料需求列表,同样使用获取集合的步骤,但缺货数的属性需要设置筛选条件:缺货数大于0;

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(20)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(21)

⑧第八步,新增采购订单,使用新增数据的步骤,且隐藏步骤;

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(22)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(23)

⑨第九步,使用第七步数据进行新增采购订单的明细,使用新增集合的步骤,其中$关联需要设为第七步,即第九步新增的数据来源,物料和数量分别对应需求物料表的物料和缺货数,隐藏步骤;

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(24)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(25)

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(26)

⑩功能已做好,测试结果如下

库存不足时自动生成采购单(库存不足时自动生成采购单功能的快速实现)(27)

猜您喜欢: