大数跨境

「重度用户分享」挑战用低代码快速实现MRP运算!

「重度用户分享」挑战用低代码快速实现MRP运算! 白码
2021-03-09
0

点击蓝字


关注我们

重度用户分享系列恢复周更啦~欢迎各位白码用户踊跃发言投稿哦!

今天我们精选了一篇,一起来看看其他用户是怎么运用白码平台来便捷开发的吧~


低代码快速实现MRP运算

Function Description

来自  白码用户 @Senbody  的分享

目标

MRP运算也算是很常用的一个功能了。所以今天就挑战用白码低代码开发平台快速实现MRP运算!

目标就是创建生产任务时,系统自动根据各产品的BOM,进行MRP运算,统计出所需物料,并根据库存计算缺货数;


前期准备

1.准备好产品、物料、BOM、生产任务、生产任务明细、生产任务需求物料数据表;

2.提前录好基础数据;

产品表

物料表

BOM表

生产任务表

生产任务明细表

需求物料表


实现步骤

1.新建一个功能,命名为新建生产任务;

2.编辑功能流程

①第一步新增生产任务,使用新增数据的步骤;

使用新增数据的步骤

新增生产任务步骤

②第二步新增生产任务明细,使用新增集合的步骤,其中产品属性可以设置“固定”,以实现多选的效果;

新增集合的步骤

其中产品属性可以设置“固定”

③第三步则需要通过编程的方式,进行MRP运算;


向上滑动阅览


async function runProcess($model = model, $plugin = plugin, $params) {

    let list = $params.list;//生产任务明细

    let itemid = $params.item._id;//生产任务id

    let require_list = [];

    /*物料需求列表

        [

            {

                id:"物料id",

                demand:"总需求数量"

            }

        ]

    */

    for (let i = 0; i < list.length; i++) {//遍历生产任务明细collection

        let quantity = list[i]["5fd1cc619f7ebc78933d9a2b"];//计划生产量

        //查询产品的BOM列表

        let bom_list = await $plugin.data.queryData("5fd1cb6c04284278923ac9a7", {

            "5fd1cb8404284278923ac9a8": list[i]["5fd1cc429f7ebc78933d9a2a"]

        });

        for (let j = 0; j < bom_list.length; j++) {//遍历bom列表

            //查询物料需求列表中是否已有物料

            let itemIndex = require_list.findIndex((item) => {

                return item.id == bom_list[j]["5fd1cb9204284278923ac9a9"];

            });

            if (itemIndex > 0) {

                //物料重复,去重,增加数量

                require_list[itemIndex]["demand"] =  new Number(require_list[itemIndex]["demand"]) + new Number(quantity) * new Number(bom_list[j]["5fd1cb9804284278923ac9aa"]);//产品计划生产量*物料用量

            } else {

                //新物料

                require_list.push({

                    id: bom_list[j]["5fd1cb9204284278923ac9a9"],//物料id

                    demand: new Number(quantity) * new Number(bom_list[j]["5fd1cb9804284278923ac9aa"])//产品计划生产量*物料用量

                });

            }

        }

    }

    for (let i = 0; i < require_list.length; i++) {//去重完后,录入到需求物料表

        let form = {

            "5fd1cc8d04284278923ac9ad":itemid,//关联生产任务

            "5fd1ccad9f7ebc78933d9a2c":require_list[i]["id"],//物料

            "5fd1ccb39f7ebc78933d9a2d":require_list[i]["demand"]//总需求数量

        };

        //保存数据

        await $plugin.data.saveData("5fd1cc8204284278923ac9ac",form);

    }

}



④经过前面三步,已经计算好所有需要的物料以及用量,接下来就需要计算缺货数,第四步使用获取集合的步骤,获取已经创建好的需求物料列表;

使用获取集合的步骤

获取已经创建好的需求物料列表

⑤第五步通过关联获取集合的步骤,获取第四步的集合进行计算缺货数;

关联获取集合的步骤

计算缺货数


测试结果



再次感谢白码用户@Senbody 的精彩分享~

也欢迎各位白码用户可以根据文章内容,自己实操感受一下,有发现更好的解决方法也可以发出来和我们分享,与白码其他用户一起交流~


往期 · 推荐

CRM七天无跟进自动退回公海功能

无代码快速实现条形码打印功能

无代码实现扫码录入功能

用白码,实现自动分类填写产品单价功能2.0

用白码快速实现财务记账功能

白码

扫二维码|添加小助理微信

有任何问题

都可以咨询小助理哦

这里“阅读原文”,了解更多白码信息


【声明】内容源于网络
0
0
白码
白码无代码 | 低代码开发平台可以帮助开发者和企业技术开发团队增加软件开发速度,降低开发成本,达到降本增效的目的。用户可以通过白码,按照企业所需自行定制ERP,CRM,OA等软件;成为白码开发者,把想法快速变成软件吧。
内容 125
粉丝 0
白码 白码无代码 | 低代码开发平台可以帮助开发者和企业技术开发团队增加软件开发速度,降低开发成本,达到降本增效的目的。用户可以通过白码,按照企业所需自行定制ERP,CRM,OA等软件;成为白码开发者,把想法快速变成软件吧。
总阅读0
粉丝0
内容125