📄 materialconsumption.java
字号:
package com.power.pipeengine.Report;
import java.util.*;
import java.io.*;
import com.power.pipeengine.Variable.*;
import com.power.pipeengine.Constraint.*;
import com.power.pipeengine.InputData.*;
import com.power.pipeengine.LPModel.*;
import com.power.pipeengine.Entity.*;
import com.power.pipe.*;
import com.power.pipeengine.*;
public class MaterialConsumption extends Report
{
static ResourceBundle res = ResourceBundle.getBundle("com.power.pipeengine.Res",
EngineConfig.getInstance().getLocale() );
private static final MaterialConsumption INSTANCE =
new MaterialConsumption();
// Private constructor supresses
// default public constructor
private MaterialConsumption( ) {
_fileName = "MaterialConsumption";
//initFileWriter();
}
public static MaterialConsumption getInstance( ) {
return INSTANCE;
}
private StringBuffer content = new StringBuffer();
public void createReport() throws IOException {
DataModel dataModel = DataModel.getInstance();
Hashtable matUses = dataModel.getMaterialUses().getMaterialUses();
Hashtable materials = dataModel.getMaterials().getMaterials();
PIPECalendar cal = dataModel.getCalendar();
StartsVariable startsVar = StartsVariable.getInstance();
Solution sol = Solution.getInstance();
Enumeration allMaterials = materials.elements();
String separator = GlobalConfig.getInstance().getSeparator();
while( allMaterials.hasMoreElements() ) {
Material mat = (Material) allMaterials.nextElement();
Vector uses = (Vector) matUses.get( mat.getMaterialID() );
if( uses == null ) continue;
for( int t=1; t<=cal.getTotalNumOfBuckets(); t++ ) {
Bucket b = cal.getBucket( t );
double consumption = 0;
for( int i=0; i<uses.size(); i++ ) {
MaterialUse matUse = (MaterialUse) uses.elementAt(i);
Route r = matUse.getRoute();
if( t > r.getLastStartBucketHavingOuts() ) continue;
double rate = matUse.getConsumptionRate( t );
String var = startsVar.getVariable( r,
r.getProduct(),
b );
double value = sol.getValue( var );
consumption += rate * value;
}
// RHS
double avail = mat.getAvailMaterial( t );
if( avail == 0.0 && consumption == 0.0 ) continue;
String lineOut = mat.getMaterialID() + separator +
mat.getFacility().getFacilityID() + separator +
b.getBucketID() + separator +
b.getFormatedDate() + separator +
consumption + separator +
avail + "\n";
content.append( lineOut );
}
}
//_myFileWriter.close();
super.flush( content.toString() );
content = null;
System.gc();
}
public void reset() {
content = new StringBuffer();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -