主生产计划程序

提示: 本文主要介绍主生产计划程序。程序以HTML作为前端数据展示;JavaScript作为功能实现语言,处理数据并传入前端表格…作业再也不用担心代码和别人Python版本的重了!程序灵活性高,可以根据输入参数自动生成相应时期长度和周期的框架!
演示网址: https://www.systemhub.cn/cc/index.php
代码地址: https://download.csdn.net/download/qq_45002960/16796559
声明: 文章以及代码均为本人辛勤编写!禁止盗用!未经本人同意,禁止转载!

一、主生产计划简介

主生产计划

主生产计划(Master Production Schedule,简称为MPS)是根据客户合同和预测,把S&OP中的产品系列具体化,确定出厂产品、使之成为展开MRP与CRP运算的主要依据,起到了从宏观计划向微观计划过渡的承上启下作用。

三个时区

一般情况下,时区可以分为时区1、时区2和时区3。

  1. 时区1是产品的总装提前期,也被称为需求时区。时区1中的订单是下达订单,该订单中的产品已经开始制造,这些产品的计划不能轻易调整。
  2. 时区2是产品的累计提前期,也被称为计划时区。时区2中的订单是确认订单,表示该订单中的产品数量和时段不能由ERP系统自动调整,只有MPS计划员才可以修改。
  3. 时区3等于总提前期计划展望期,也被称为预测时区。时区3中的订单是计划订单,这种订单中的数据在情况发生变化时可以由ERP系统自动调整。

三个时区
三个时区特点对比:
三个时区特点对比

毛需求推算

毛需求由预测值和实际的合同值组合得出,不同时期的计算方法也不同:

需求时区毛需求: 取值等于合同量(订单量)
计划时区毛需求: 取值等于合同量与预测值中的最大者
预测时区毛需求: 取值等于预测值(绝大多数情况),也有取合同量与预测值中的最大者

在这里插入图片描述

预计可用库存量初值(PAB初值)推算

PAB初值=上期末预计可用库存量 + 本期计划接收量 - 本期毛需求量

净需求推算

净需求推算需考虑安全库存,若未写明安全库存,则说明没有安全库存,即安全库存=0
考虑安全库存推算特定时段的净需求要分两种情况:

  1. 当:PAB初值 >= 安全库存,净需求 = 0
  2. 当:PAB初值 < 安全库存,净需求 = 安全库存 - PAB初值

计划产出量推算

本文仅考虑批量规则,如在倍数批量规则下,推算特定时段的计划产出量。

  1. 当:净需求 > 0,计划产出量 = N × 批量,但要满足:(N - 1) × 批量 < 净需求
  2. 当:净需求 <= 0,计划产出量 = 0

预计可用库存量推算(PAB终值)

推算特定时段的预计库存量。

PAB终值 = 计划产出量 + PAB初值

计划投入量推算

逐步递增一个时段,分别重复计算上述数值,循环计算至计划期终止。终止后,即可推算计划投入量。推算计划投入量,考虑提前期推算计划期全部的计划投入量,数值上等于计划产出量即加工计划下达的时间和数量。

n个时段的计划投入量数值上等于第(n + 提前期)个时段的计划产出量

二、程序效果预览

初始页面

初始页面主要有一个表格,表格中自动填有默认值,用户也可以根据自己的需求自行填写定义!点击“生成框架”后可以按照表格中的取值生成对应的框架。(注:未生成框架就点击“自动计算”,页面会有弹窗提示需要先点击“生成框架”)
初始页面

生成框架

在输入数据合理,并通过程序检验的情况下,点击“生成框架”会生成如下图所示的框架。否则,会有弹窗提示。
生成框架

自动计算

在输入数据合理,并通过程序检验的情况下,点击“自动计算”会自动计算出毛需求、PAB初值、净需求、计划产出量、PAB终值、计划投入量 。否则,会有弹窗提示。
自动计算

灵活多变

自定义填入相应的值,会生成对应符合要求的框架,也就是程序不是写死的。
灵活多变

输入异常处理

输入数据异常、不符合要求时,会有弹窗提示。
数据异常
数据异常

三、部分代码介绍

数据输入判断

符合要求的数据有两类:正整数、非负整数。

function isIntNum(val) {
    console.log(val);
    var regPos = /(^[1-9]\d*$)/; // 正整数
    if (regPos.test(val)) {
        return true;
    } else {
        return false;
    }
}

function isIntsssNum(val) {
    console.log(val);
    var regPos = /(^[0-9]\d*$)/; // 非负整数
    if (regPos.test(val)) {
        return true;
    } else {
        return false;
    }
}

相关数值计算函数

//计算三个时段毛需求量
//ycz预测量;htl合同量;tag旗帜
function x_mxq(htl) {
    return htl;
}

function j_mxq(ycz, htl) {
    if (ycz > htl) {
        return ycz;
    } else {
        return htl;
    }
}

function y_mxq(ycz, htl, tag) {
    if (tag == 0) {
        return ycz
    } else {
        if (ycz > htl) {
            return ycz;
        } else {
            return htl;
        }
    }
}

//计算PAB初值
//s_kykcl上期末可用库存量;jhjsl计划接收量;mxq毛需求量
function PAB(s_kykcl, jhjsl, mxq) {
    var PABvalue = s_kykcl + jhjsl - mxq;
    return PABvalue;
}

//推算净需求
//PABvaluePAB初值;aqkc安全库存
function JXQ(PABvalue, aqkc) {
    if (PABvalue >= aqkc) {
        return 0;
    } else {
        var jxq = aqkc - PABvalue;
        return jxq;
    }
}

//推算计划产出量
//jxq净需求;pl批量
function JHCCL(jxq, pl) {
    if (jxq <= 0) {
        return 0;
    } else {
        var jhccl = Math.ceil(jxq / pl) * pl;    //向上取整
        return jhccl;
    }
}

//计算预计可用库存量PAB终值
//jhccl计划产出量;PABvaluePAB初值
function YJKYKCL(jhccl, PABvalue) {
    var yjkykcl = jhccl + PABvalue;
    return yjkykcl;
}

//计算计划投入量
//jhccl计划产出量;sd当前时段号;sddw时段单位;tiqian提前期
function JHTRL(sd, tiqian) {
    var sd_jhtrl = sd - tiqian;
    if (sd_jhtrl < 1) {
        return 1;
    }//如果计划投入量在时段1之前,则不予计算
    else {
        return sd_jhtrl;
    }
}

四、资源下载

声明: 世上没有免费的午餐,尊重版权是激励创作的动力! 笔者在此真诚希望各位读者能够根据自己的需求合理抉择下载与否
提示: 演示网址的JS代码已经进行混淆与加密! 同时注入死循环,未在相应域名下运行会导致浏览器卡死,望周知!

演示网址: https://www.systemhub.cn/cc/index.php
代码地址: https://download.csdn.net/download/qq_45002960/16796559

文章以及代码均为本人辛勤编写!禁止盗用!未经本人同意,禁止转载!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梧桐※漂湘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值