📄 outsvariable.java
字号:
package com.power.pipeengine.Variable;
import com.power.pipeengine.Entity.*;
import com.power.pipeengine.InputData.*;
import com.power.pipeengine.*;
import java.util.ResourceBundle;
public class OutsVariable
extends Variable {
private static final OutsVariable INSTANCE =
new OutsVariable();
// Private constructor supresses
// default public constructor
private OutsVariable() {
}
public static OutsVariable getInstance() {
return INSTANCE;
}
public String getVariable(Product p, Bucket b) {
String varName = new String("O" +
"F" + p.getFacility().getVariableCode() +
"P" + p.getVariableCode() +
"T" + b.getVariableCode());
/*String separator = "";
String varName = new String( "O" +
//r.getRouteID() + "," +
p.getFacilityID() + separator +
p.getProductID() + separator +
b.getBucketID() );*/
/*if( p.hasDemand( b ) ) {
setObjElement( varName, p, b );
}*/
return varName;
}
public void setObjElement(String varName, Product p, Bucket b) {
if (EngineConfig.getInstance().isMaxProfit()) {
setObjElement(varName, -p.getASP(b.getBucketID()));
}
}
public Bucket getRouteStartBucket(Route r, Product p, Bucket b) {
Facilities allFacilities = DataModel.getInstance().getFacilities();
double rteCycleTime = r.getCycleTime();
Facility f = allFacilities.getFacility(r.getFacilityID());
Bucket bucket = null;
double remainingCycleTime = rteCycleTime -
f.getNumWorkingDaysForBucket(b.getBucketID()) / 2;
int bucketID = b.getBucketID();
if (remainingCycleTime > 0) {
for (int i = bucketID - 1; i > 0; i--) {
remainingCycleTime -= f.getNumWorkingDaysForBucket(i);
if (remainingCycleTime < 0) {
bucketID = i;
break;
}
}
}
else {
return b;
}
if (bucketID == b.getBucketID()) {
return null;
}
bucket = DataModel.getInstance().getCalendar().getBucket(bucketID);
return bucket;
}
public Bucket getEarliestRouteStartBucket(Route r, Product p, Bucket b) {
Facilities allFacilities = DataModel.getInstance().getFacilities();
double rteCycleTime = r.getCycleTime();
Facility f = allFacilities.getFacility(r.getFacilityID());
Bucket bucket = null;
double remainingCycleTime = rteCycleTime;
int bucketID = b.getBucketID();
if (bucketID < 2)
return b;
if (remainingCycleTime > 0) {
for (int i = bucketID - 1; i > 0; i--) {
remainingCycleTime -= f.getNumWorkingDaysForBucket(i) / 2;
if (remainingCycleTime >= 0) {
bucketID = i;
}
else {
break;
}
remainingCycleTime -= f.getNumWorkingDaysForBucket(i) / 2;
}
}
else {
return b;
}
/*if( bucketID == b.getBucketID() ) {
return null;
}*/
bucket = DataModel.getInstance().getCalendar().getBucket(bucketID);
return bucket;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -