📄 inventoryvariable.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 + -