⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inventoryvariable.java

📁 著名IT公司ILog的APS高级排产优化引擎
💻 JAVA
字号:
package com.power.pipeengine.Variable;

import java.util.*;
import com.power.pipeengine.Entity.*;
import com.power.pipeengine.InputData.*;
import com.power.pipeengine.*;

public class InventoryVariable
    extends Variable {
  private static final InventoryVariable INSTANCE =
      new InventoryVariable();

  // Private constructor supresses
  // default public constructor
  private InventoryVariable() {
  }

  public static InventoryVariable getInstance() {
    return INSTANCE;
  }

  private Hashtable _definedVars = new Hashtable();
  private String getDefinedVar(Facility f, Product p, Bucket b) {
    Hashtable prodHash = (Hashtable) _definedVars.get(f.getVariableCode());
    if (prodHash == null)
      return null;

    Hashtable bucketHash = (Hashtable) prodHash.get(p.getVariableCode());
    if (bucketHash == null)
      return null;

    return (String) bucketHash.get(b.getVariableCode());
  }

  private void addDefinedVar(Facility f, Product p, Bucket b, String varName) {
    Hashtable prodHash = (Hashtable) _definedVars.get(f.getVariableCode());
    if (prodHash == null) {
      prodHash = new Hashtable();
      _definedVars.put(f.getVariableCode(), prodHash);
    }

    Hashtable bucketHash = (Hashtable) prodHash.get(p.getVariableCode());
    if (bucketHash == null) {
      bucketHash = new Hashtable();
      prodHash.put(p.getVariableCode(), bucketHash);
    }

    bucketHash.put(b.getVariableCode(), varName);
  }

  public String getVariable(Facility f, Product p, Bucket b) {
    /*String var =  new String( "I" +
                  "F" + f.getVariableCode() +
                  "P" + p.getVariableCode() +
                  "T" + b.getVariableCode() );*/

    String varName = getDefinedVar(f, p, b);
    if (null != varName) {
      return varName;
    }

    String separator = "";
    varName = new String("I" +
                         "F" + f.getVariableCode() +
                         "P" + p.getVariableCode() +
                         "T" + b.getVariableCode());

    /*varName = new String( "I" +
           f.getFacilityID() + separator +
           p.getProductID() + separator +
           b.getBucketID() );*/

    addDefinedVar(f, p, b, varName);

    return varName;
  }

  public void setObjElement(Facility f, Product p, Bucket b, boolean beginInv) {
    InventoryCosts invCosts = DataModel.getInstance().getInventoryCosts();
    InventoryCost invCost = invCosts.getInventoryCost(p.getProductID(),
        f.getFacilityID());

    double cost = 0.00000; //0.0000001 * b.getBucketID();
    if (null != invCost) {
      cost += invCost.getHoldingCost(b.getBucketID());
    }

    if (EngineConfig.getInstance().isMaxOnTimeDelivery()) {
      //super.setObjElement( getVariable( f, p, b ), cost );//   + Math.random() * 0.0000001 );
    }
    else if (beginInv) {
      //super.setObjElement( getVariable( f, p, b ),
      //- p.getASP( b.getBucketID() )  + Math.random() * 0.0000001 );
    }
    else {
      //super.setObjElement( getVariable( f, p, b ),
      //+ p.getASP( b.getBucketID() ) + cost  + Math.random() * 0.0000001 );
    }
  }

  public void reset() {
    _definedVars = new Hashtable();
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -