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

📄 resourceusage.java

📁 简介: 今天为网友提供的是JAVA源码
💻 JAVA
字号:
package com.power.pipeengine.Report;

import java.util.*;
import java.io.*;
import java.text.*;

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.*;
import com.power.util.Message.*;
import com.power.pipeengine.DispatchReportMap.*;

public class ResourceUsage
    extends Report {
  private static final ResourceUsage INSTANCE =
      new ResourceUsage();

  // Private constructor supresses
  // default public constructor
  private ResourceUsage() {
    _fileName = "ResourceUsage";
    //initFileWriter();
  }

  public static ResourceUsage getInstance() {
    return INSTANCE;
  }

  private StringBuffer content = new StringBuffer();
  static ResourceBundle res = ResourceBundle.getBundle("com.power.pipeengine.Res",
                                                        EngineConfig.getInstance().getLocale() );

  public void createReport() throws IOException {
    DataModel dataModel = DataModel.getInstance();
    Vector buckets = dataModel.getCalendar().getBuckets();
    Resources rscs = dataModel.getResources();
    RscSlackVariable rscSlackVar = RscSlackVariable.getInstance();
    Solution sol = Solution.getInstance();

    Enumeration allRscs = rscs.getResources().elements();
    String separator = GlobalConfig.getInstance().getSeparator();

    try {
      EquipmentMap.getInstance().readData();
    }
    catch (Exception e) {
    }


    while (allRscs.hasMoreElements()) {
      Resource rsc = (Resource) allRscs.nextElement();
      if (dataModel.getResourceUses().getResourceUse(rsc.getResourceID()) == null) {
        continue;
      }
      Facility f = rsc.getFacility();

      for (int i = 0; i < buckets.size(); i++) {
        Bucket b = (Bucket) buckets.elementAt(i);
        String rscVar = rscSlackVar.getVariable(rsc, f, b);
        double slackValue = sol.getValue(rscVar);
        double rscAvail = rsc.getResourceHours(b) *
            f.getNumWorkingDaysForBucket(b.getBucketID());
        int hoursUsed = (int) ( (double) ( (rscAvail - slackValue) * 100.0));
        hoursUsed = (int) ( ( (double) hoursUsed) / 100.0);

        double ratio = (double) (int) ( (hoursUsed / rscAvail) * 10000.0) / 100;

        if (hoursUsed == 0.0)
          continue;

        if( ratio >= 95 ) {
          reportBottleNeck( rsc.getResourceID(), ratio, b.getBucketID() );
        }

        String lineOut = rsc.getResourceID() + separator +
            f.getFacilityID() + separator +
            b.getBucketID() + separator +
            b.getFormatedDate() + separator +
            hoursUsed + separator +
            ratio + "\n";
        content.append(lineOut);
      }
    }

    //_myFileWriter.close();
    super.flush(content.toString());
    content = null;
    System.gc();
  }

  SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
  private void reportBottleNeck( String rscID, double loadRatio, int bucketID ) {
    String equipmentName = EquipmentMap.getInstance().getEquipmentName( rscID );
    Date aDate = PeriodDateMap.getInstance().getDateBucketBelongsTo( bucketID );
    if( null == equipmentName ) {
      equipmentName = rscID;
    }

    MessageArea.getInstance().addMessage( "\t**" + res.getString( "BottleNeckRsc" ) + ": " +
                                          equipmentName + ", " + loadRatio +
                                          ", " + sdf.format( aDate ) + "\n" );
  }

  public void reset() {
    content = new StringBuffer();
  }

}

⌨️ 快捷键说明

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