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

📄 resource.java

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

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

public class Resource extends com.power.pipeengine.Entity.Entity
{
    private String _resourceID;
	private int _facilityID;
	private Vector _effectiveBucket = new Vector();
	private Vector _hoursPerWDay = new Vector();
	private Vector _timePhasedAvailData = new Vector();
        private Vector _hoursByBucket = new Vector();

        public Resource(String rscID,
                        int fID) {
          _resourceID = rscID;
          _facilityID = fID;
        }

	public void addTimePhasedAvailData( int bucket, double hours ) {
		_effectiveBucket.addElement( new Integer( bucket ) );
		_hoursPerWDay.addElement( new Double( hours ) );
	}

    public void consumeCapacity( int bucket, double hours ) {
      Double cap = (Double) _hoursByBucket.elementAt(bucket - 1);
      _hoursByBucket.remove(bucket - 1);
      _hoursByBucket.insertElementAt(new Double(cap.doubleValue() - hours),
                                     bucket - 1);
    }

	public Vector getTimePhasedAvailData() {
		return _timePhasedAvailData;
	}

	public double getResourceHours( Bucket b ) {
		Double hours = (Double) _timePhasedAvailData.elementAt( b.getBucketID() - 1 );
		return hours.doubleValue();
	}

	public double getResourceHours( int b ) {
		Double hours = (Double) _hoursByBucket.elementAt( b - 1 );
		return hours.doubleValue();
	}

	public void buildTimePhasedAvailData() {
        for( int k=1; k<((Integer)_effectiveBucket.elementAt(0)).intValue(); k++ ) {
            Double hours = new Double( 0 );
            _timePhasedAvailData.insertElementAt( hours, k-1 );
        }

		for( int i=0; i<_effectiveBucket.size()-1; i++ ) {
			int currentBucket = ((Integer)_effectiveBucket.elementAt(i)).intValue();
			int nextBucket = ((Integer)_effectiveBucket.elementAt(i+1) ).intValue();
			for( int j=currentBucket; j<nextBucket; j++ ) {
				Double hours = (Double) _hoursPerWDay.elementAt( i );
				_timePhasedAvailData.insertElementAt( hours, j-1 );
			}
		}

		//from last element to the end of horizon
		int currentBucket = ((Integer)_effectiveBucket.lastElement()).intValue();
		int numBuckets = DataModel.getInstance().getCalendar().getTotalNumOfBuckets();
		for( int i=currentBucket; i<=numBuckets; i++ ) {
			Double hours = (Double) _hoursPerWDay.lastElement();
			_timePhasedAvailData.addElement( hours );
		}

                for( int i=0; i<numBuckets; i++ ) {
                  Double hoursPerDay = (Double) _timePhasedAvailData.elementAt( i );
                  double hoursInBucket = hoursPerDay.doubleValue() * this.getFacility().getNumWorkingDaysForBucket( i+1 );
                  _hoursByBucket.add( new Double( hoursInBucket) );
                }
	}

	public String getResourceID() {
		return _resourceID;
	}

	public int getFacilityID() {
		return _facilityID;
	}

	public Facility getFacility() {
		Facilities facilities = DataModel.getInstance().getFacilities();
		return facilities.getFacility( _facilityID );
	}

	public void print() {
		System.out.println( _resourceID + ","
							+ _facilityID + ","
							+ _timePhasedAvailData );
	}
}

⌨️ 快捷键说明

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