BOM设计的一些问题及解决方案探讨----合版BOM
BOM是ERP的核心资料,也是比较难的一块,不仅涉及的内容多,要求准确性高,时效性也要求高。但传统的ERP在处理BOM时有不少问题,因此也有些软件公司引入了各种BOM类型,像“标准BOM”、“工程BOM”、“客户BOM”、“订单BOM”等等;但仍有些问题难以解决,比如下面要讲的合版生产的问题:
合在一起生产是许多企业都会遇到的问题,怎样算料、算成本、跟进进度会是一个麻烦,如果按上图数据比例正好合适的情况计算,在用料方面就不会有问题:
但是我们经常看到有些小的零件会在材料允许的条件下做多一些,一来用料不会多出很多成本,二来如果有损耗也不必补料生产(这样更加浪费材料和时间),所以更可能的组合如下图:
我们看到,在C上面A2共有4个,而按照比例只需要3个就够了。照传统的BOM算法计算出来的C需求数量就会有误差:
现在只有两个半成品,如果有更多的半成品在一起生产,特别是跨产品、跨订单时,BOM制作更加麻烦,难度大大增加,正确性也不好保证。
结合我们印刷行业的特点,通常排单都是按印刷版排的,流程大致如下:
可以看到BOM并不是MRP的直接资料来源,而是通过生产工程单的方式下来的
做BOM时我们只做到A1,A2这层,下面印刷品则单独开模块来完成BOM和工艺。
印刷品模块中我们会确定印版上面包含的半成品(做法就相当于A下面包含了A1、A2),以及每个半成品可以产出多少个,并选择其中一个作为计算的基准。
在生产时印刷品模块实际就是开工程单,一个工程单下去我们就知道了哪些半成品下了多少数量,再通过一个明细表就可以清楚看到哪些是生产够了,哪些还要再生产的;检查起来也很直观。
总结起来,BOM里面只是做到产品结构层,而需要组合生产的则不做,但给出标识,通过工程单将BOM结合起来。
这样我们的BOM变数就小了很多,可以很快的确定下来,而通过工程单下发任务也可以实现边做货边完善资料的目的。
对子,BOM里面也有一些比较简单的工艺,可以直接下到MRP去,只需要设置一个标识就好了。
如果企业需要计算实际的材料成本和人工成本还需要在BOM和工艺路线中设置各个产品的占比(材料占得多不一定人工占得多),这个就看各家的要求到什么程度了,总之有要求就做细点,没要求就先把物料算出来。不缺料,能把生产搞正常了,才有精力折腾下一步。
Hello World,: 自己写的小工具,你可以用其他的数据库管理软件,例如dbeaver,JookDB也有类似的界面
郁金香路街办主任: 请问最后一个展示数据库的可视化工具是啥?
Hello World,: 思路差不多了,加了区域限制,按比率大的去计算的
qq_17322317: 你也是这样写的么,有没有可以优化的地方
qq_17322317: private Image drawRectangle(Image image) { if (image == null) { return null; } Graphics g = Graphics.FromImage(image); Pen pubpen = new Pen(Color.Blue, 5); Rectangle pubRc = GetPictureBoxZoomSize(pictureBoxIn); int black_left_width = (pubRc.Width == this.pictureBoxIn.Width) ? 0 : (this.pictureBoxIn.Width - pubRc.Width) / 2; //算左边空白区 int black_top_height = (pubRc.Height == this.pictureBoxIn.Height) ? 0 : (this.pictureBoxIn.Height - pubRc.Height) / 2;//算上面的空白区 double wrate = (double)image.Width / pubRc.Width; //图片原始大小/图片实际大小 double hrate = (double)image.Height / pubRc.Height; g.DrawRectangle(pubpen, (int)((dragStart.X - black_left_width) * wrate), (int)((dragStart.Y - black_top_height ) * hrate), (int)((dragEnd.X - dragStart.X) * wrate), (int)((dragEnd.Y - dragStart.Y) * hrate)); return image; } 搞定了