mps横式报表java实现

/*代码缺陷
    * 1.只能处理提前期为1的mps表格,因为其中少了计划接收量这一基本数量
    * 2.只能处理时区设定为需求时区:{1,2} 计划时区:{3,4,5,6} 预测时区:{7,8,9,10}的mps横式报表
    * 3.时间复杂度高
    * 4.代码复用性差
    * 5.页面...
    * */

Mps报表

属性:现有库存量,安全库存量,生产批量,批量增量,提前期
时区:当期、需求时区、计划时区、预测时区
时段:当期、1~n
输入:预测量、订单量
输出:毛需求量、pab初值、净需求量、计划产出量、pab、计划投入量、atp

  • 同期输出:毛需求量、pab初值、净需求量、计划产出量、pab、atp
  • 输出至前一期:计划投入量

毛需求量:

if(时区==需求时区)
	毛需求量=订单量
if(时区==计划时区)
	毛需求量=max(订单量,需求量)
if(时区==需求时区)
	毛需求量=预测量
Else 毛需求量=0

pab初值

if(时段==当期)
	PAB初值=现有库存量
Else if(时段==1)
	PAB初值=现有库存量-本时段的毛需求量
Else if(时段>1)
	PAB初值=前一时段的PAB-本时段的毛需求量

净需求量:

If(本时段的PAB初值>安全库存量||本时段的PAB初值==安全库存量)
	净需求量=0
Else
	净需求量=安全库存量-本时段的PAB初值

计划产出量:

if(净需求量>0)
    For(i=0;计划产出量<净需求量;i++)
    		计划产出量=i*生产批量
Else if(净需求量==0)
	计划产出量=0

PAB

if(时段==当期)
	PAB=0
Else if(时段==1)
	PAB=现有库存量-本时段的毛需求量+本时段计划产出量
Else if(时段>1)
	PAB=前一时段的PAB-本时段的毛需求量+本时段计划产出量

计划投入量

if(时段==当期)
	计划投入量=0
Else if(时段==1||时段>1)
	计划投入量=下一时段计划产出量

ATP

订单量之和sum=本时段的订单量
if(计划产出量==0)
	if(时段==1)
		ATP=现有库存量-sum
	else ATP=0
Else 
	if(时段==1)
		ATP=现有库存量+本时段计划产出量-sum
	For(n=1;下n期的计划产出量==0;n++)
		Sum+=下n个时段的订单量
	ATP=本时段计划产出量+本时段计划接收量-sum

GIT:https://github.com/MelancholyCat/mpsProject.git

你可能感兴趣的:(mps)