亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? startsschedule.java

?? APS(高級排產系統)
?? JAVA
字號:
package com.power.pipeengine.DispatchReport;

/**
 * <p>Title: PIPE Engine</p>
 * <p>Description: Global Planning Optimization Engine</p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: Paraster, Inc.</p>
 * @author unascribed
 * @version 1.0
 */
import com.power.pipeengine.Entity.*;
import com.power.pipeengine.InputData.*;
import com.power.pipeengine.DispatchReportMap.*;
import java.util.*;
import java.text.*;

public class StartsSchedule {
    private int bucketID;
    private int rteID;
    private double starts;

    private String orderID;
    private String styleID;
    private int pid;
    private int qty;
    private int pidNext;
    private double stdProcTime;

    private Date startTime;
    private Date endTime;

    private String assignedEquipment;
    private int assignedEmployee = -1;

    private StartsSchedule parent;

    private double capIdx = 1.0;

    private int actualStartTime = 0;
    private int duration = 0;

    private boolean useNextDayCap = false;
    private double nextDayCapUsed = 0.0;

    private boolean assigned = false;

    private boolean isSplited = false;

    private int lineNumber = 0;

    public StartsSchedule( int b, int r, double val ) {
        bucketID = b;
        rteID = r;
        starts = val;
    }

    public void reviseStarts( double aDbl ) {
        starts = aDbl;
    }

    public void setSplited() {
        isSplited = true;
    }

    public boolean isSplited() {
        return isSplited;
    }

    public StartsSchedule getSplitedSchedule( int anInt) {
        StartsSchedule aSchedule = new StartsSchedule( bucketID, rteID, anInt );
        aSchedule.processStyle( new Style(
                new Integer( rteID ),
                orderID,
                styleID,
                new Integer( pid ),
                new Integer( pidNext ),
                new Integer ( anInt ) ,
                new Double( stdProcTime) ), anInt );
        aSchedule.setSplited();

        qty -= anInt;

        aSchedule.setEquipment( assignedEquipment );
        aSchedule.setParent( parent );
        return aSchedule;
    }

    public int getAssignedEmployee() {
        return assignedEmployee;
    }

    public String getOrderID() {
        return orderID;
    }

    public String getStyleID() {
        return styleID;
    }

    public int getProcessID() {
        return pid;
    }
    public int getBucketID() {
        return bucketID;
    }

    public int getRouteID() {
        return rteID;
    }

    public double getStartsValue() {
        return starts;
    }

    public void augmentStarts() {
        starts += 1.0;
    }

    public void augmentQuantity( int q ) {
        qty += q;
    }

    public void adjustStartsForMultiSrcingProducts( int numOfSrcs ) {
      starts *= numOfSrcs;
    }

    public void integrizeStarts() {
        starts = Math.floor( starts );
    }

    public void modifyBucketID( int newBucketID ) {
      bucketID = newBucketID;
    }

    public void processStyle( Style aStyle, int q ) {
        orderID = aStyle.getOrderID();
        styleID = aStyle.getStyleID();
        pid = aStyle.getProcessID();
        pidNext = aStyle.getNextProcessID();
        stdProcTime = aStyle.getProcessingTime();
        qty = q;
        adjustedCap = qty;
    }

    public StartsSchedule getExtraCapacity() {
        return new StartsSchedule( bucketID, rteID, (starts - qty) );
    }

    public void setStartTime( Date aDate ) {
        startTime = aDate;

    }

    public int getNextPID() {
        return pidNext;
    }

    public void setEndTime( Date eTime ) {
        endTime = new Date( startTime.getTime() +
                            (long) ( qty * stdProcTime / capIdx ) * 60 * 1000 );
    }

    public void setTimeInterval( Date sTime, Date eTime ) {
        Calendar cal = Calendar.getInstance();
        cal.setTime( sTime );
        cal.set( Calendar.HOUR_OF_DAY, 0 );
        cal.set( Calendar.MINUTE, 0 );
        cal.set( Calendar.SECOND, 0 );
        Date zeroHours = cal.getTime();
        Vector bucketsInDate = PeriodDateMap.getInstance().getPeriodsInDate( zeroHours );
        startTime = new Date( sTime.getTime() + (long) actualStartTime * 60 * 1000 );
        endTime = new Date( sTime.getTime() + (long) (actualStartTime + duration) * 60 * 1000 );
        double noonStartingTime = WorkingHours.getInstance().getAMStartTime() + 4;
        cal.set( Calendar.HOUR_OF_DAY, (int) Math.floor( noonStartingTime ) );
        cal.set( Calendar.MINUTE, (int) ( noonStartingTime * 60 - 60 * Math.floor( noonStartingTime) ) );
        Date noon = cal.getTime();
        double dinnerStartingTime = WorkingHours.getInstance().getPMStartTime() + 4;
        cal.set( Calendar.HOUR_OF_DAY, (int) Math.floor( dinnerStartingTime ) );
        cal.set( Calendar.MINUTE, (int) ( dinnerStartingTime * 60 - 60 * Math.floor( dinnerStartingTime) ) );
        Date dinnerTime = cal.getTime();
        double amStartingTime = WorkingHours.getInstance().getAMStartTime();
        cal.set( Calendar.HOUR_OF_DAY, (int) Math.floor( amStartingTime ) );
        cal.set( Calendar.MINUTE, (int) ( amStartingTime * 60 - 60 * Math.floor( amStartingTime) ) );
        Date eightOClock = cal.getTime();

        long oneHour = 60 * 60 * 1000;
        long lunchBreak = (long) ( oneHour * WorkingHours.getInstance().getLunchBreakLenght() );
        long dinnerBreak = (long) ( oneHour * WorkingHours.getInstance().getDinnerBreakLength() );
        if( bucketsInDate.size() == 1 ) {
            if( !startTime.before( noon ) ) {
                startTime.setTime( startTime.getTime() + lunchBreak );
            }
            if( endTime.after( noon ) ) {
                endTime.setTime( endTime.getTime() + lunchBreak ); //one hour lunch break
            }

            if( !startTime.before( dinnerTime ) ) {
                startTime.setTime( startTime.getTime() + dinnerBreak );
            }
            if( endTime.after( dinnerTime ) ) {
                endTime.setTime( endTime.getTime() + dinnerBreak ); //one hour dinner break
            }
        } else {
            if( !startTime.after( noon ) && endTime.after( noon ) ) {
                if( startTime.equals( noon ) ) {
                    startTime.setTime( startTime.getTime() + lunchBreak );
                }
                endTime.setTime( endTime.getTime() + lunchBreak ); //one hour lunch break
            }

            if( !startTime.after( dinnerTime ) && endTime.after( dinnerTime ) ) {
                if( startTime.equals( dinnerTime ) ) {
                    startTime.setTime( startTime.getTime() + dinnerBreak );
                }
                endTime.setTime( endTime.getTime() + dinnerBreak ); //one hour lunch break
            }
        }

        if( useNextDayCap ) {
            endTime.setTime( eightOClock.getTime() + (long) ( (24 + nextDayCapUsed) * 60 * 60 * 1000 ) );
        }

    }

    public void setEquipment( String equipment ) {
        assignedEquipment = equipment;
    }

    public String getEquipment() {
        return assignedEquipment;
    }

    public void setParent( StartsSchedule aSchedule ) {
        parent = aSchedule;
    }

    public StartsSchedule getParent() {
        return parent;
    }

    public void printOrigSchedule() {
        System.out.println( rteID + ", " +
                            bucketID + ", " +
                            starts );

    }

    public String getSchedule() {
        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );

        if( qty == 0 ) {
            return "";
        }

        if( null == orderID || null == styleID ) {
            return "";
        }

        String nextOp = "";
        for( int i=0; i<nextOpLineNum.size(); i++ ) {
            nextOp += "," + ((Integer) nextOpLineNum.elementAt( i )).toString();
        }

        int lineNumOffset = DispatchList.getInstance().getMaxAutoIDInDispatchList();
        int lineNum = lineNumOffset + this.getLineNumber();

        return assignedEquipment + "," +
                orderID + "," +
                styleID + "," +
                pid + "," +
 //               pidNext + "," +
                assignedEmployee + "," +
                qty + "," +
                0 + "," +
                sdf.format( startTime ) + "," +
                sdf.format( endTime ) + "," +
                "null," + lineNum + "\n";

    }

    public String getScheduleTest() {
        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );

        if( qty == 0 ) {
            return "";
        }

        if( null == orderID || null == styleID ) {
            return "";
        }


        int lineNumOffset = DispatchList.getInstance().getMaxAutoIDInDispatchList();
        int lineNum = lineNumOffset + this.getLineNumber();

        return assignedEquipment + "," +
                orderID + "," +
                styleID + "," +
                pid + "," +
                pidNext + "," +
                assignedEmployee + "," +
                qty + "," +
                0 + "," +
                sdf.format( startTime ) + "," +
                sdf.format( endTime ) + "," +
                "null," + lineNum + "\n";

    }
    public void setEmployee( int anID, double capIndex ) {
        assignedEmployee = anID;
        capIdx = capIndex;
    }

    public int getQuantity() {
        return qty;
    }

    String type = "N";

    public void setType( String aType ) {
      type = aType;
    }

    public String getType() {
      return type;
    }

    public double getStandardProcessingTime() {
        return stdProcTime;
    }

    public void setActualStartTime( int t ) {
        actualStartTime = t;
    }

    public int getActualStartTime() {
        return actualStartTime;
    }

    public void setDuration( int t ) {
        duration = t;
    }

    public double getRequiredStdTimeInHours() {
        return qty * stdProcTime / 60.0;
    }

    public double getDurationInMinutes() {
        return duration;
    }

    public boolean useCapInNextDay() {
        return useNextDayCap;
    }

    public void setNextDayCapUseFlag( boolean aFlag ) {
        useNextDayCap = aFlag;
    }

    public double getNextDayCapUsed() {
        return nextDayCapUsed;
    }

    public void setNextDayCapUsed( double aDbl ) {
        nextDayCapUsed = aDbl;
    }

    public Date getStartTime() {
        return startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setAssignedStatus( boolean status ) {
        assigned = status;
    }

    public boolean isAssigned() {
        return assigned;
    }

    private Vector operatorID = new Vector();
    private Vector quantities = new Vector();
    private Vector processIDs = new Vector();

    public void addNextOperator( int operator, int numOfPieces, int procID ) {
        operatorID.add( new Integer(operator) );
        quantities.add( new Integer( numOfPieces ) );
        processIDs.add( new Integer( procID ) );
    }

    int usedCap = 0;
    int adjustedCap = 0;
    public void setAdjustedCap( int cnt ) {
        adjustedCap = cnt * qty;
    }

    public int getRemainingCap() {
        return adjustedCap - usedCap;
    }

    public void updateUsage( int num ) {
        usedCap += num;
    }

    public void initPrevRoutes() {
      prevRoutes = DataModel.getInstance().getRoutes().getRoute( rteID ).getPrevRoutes();
      remainingCap = qty;
      initRemainingCapTbl();
    }

    private Vector prevRoutes = null;
    Hashtable remainingCapTbl = new Hashtable();
    private void initRemainingCapTbl() {
      if( null == prevRoutes || prevRoutes.size() <= 1 ) return;
      for( int i=0; i<prevRoutes.size(); i++ ) {
        Route route = (Route) prevRoutes.elementAt( i );
        remainingCapTbl.put( new Integer( route.getRouteID() ), new Integer( qty ) );
      }
    }

    int remainingCap = qty;
    public int getRemainingCap( int routeID ) {
      if(  null == prevRoutes || prevRoutes.size() <= 1 ) return remainingCap;
      if( null == remainingCapTbl.get( new Integer(routeID) )) {
        return remainingCap;
      }
      return ((Integer) remainingCapTbl.get( new Integer(routeID) )).intValue();
    }

    public void updateUsage( int routeID, int num ) {
      if(  null == prevRoutes || prevRoutes.size() <= 1 ) {
        remainingCap -= num;
        return;
      }
      if( null == remainingCapTbl.get( new Integer(routeID) )) {
        remainingCap -= num;
        return;
      }
      int remCap = ((Integer) remainingCapTbl.get( new Integer(routeID) )).intValue();
      remCap -= num;
      remainingCapTbl.put(  new Integer(routeID), new Integer( remCap) );
    }

    public int getEmployee() {
        return assignedEmployee;
    }

    public void setLineNumber( int n ) {
        lineNumber = n;
    }

    public int getLineNumber() {
        return lineNumber;
    }

    private Vector nextOpLineNum = new Vector();
    public void addNextOpLineNumber( int num ) {
        nextOpLineNum.add( new Integer(num) );
    }

    public Vector getNextOpLineNumber() {
        return nextOpLineNum;
    }

    public String getNextOperators( int offset) {
        String str = new String();
        for( int i=0; i<nextOpLineNum.size(); i++ ) {
            str += ( getLineNumber() + offset ) + ",";
            int nextLineNum = ((Integer) nextOpLineNum.elementAt( i )).intValue() + offset;
            str +=  nextLineNum + ",";
            str += (Integer) quantities.elementAt( i ) + ",0" + "\n";
        }
        return str;
    }

    public void setDefaultTimeInterval() {
        this.setStartTime( PeriodDateMap.getInstance().getStartingTime( bucketID ));
        endTime = new Date( startTime.getTime() +
                            (long) (starts * stdProcTime) * 60 * 1000 );
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av影院在线| 久久精品男人的天堂| 国产成人亚洲精品狼色在线| 日韩国产在线观看| 偷拍一区二区三区| 日本亚洲一区二区| 激情另类小说区图片区视频区| 欧美日韩国产一级片| 欧美性受xxxx黑人xyx性爽| 99精品久久久久久| 日韩不卡一二三区| 日本 国产 欧美色综合| 久久成人免费网站| 高清国产午夜精品久久久久久| 午夜激情一区二区三区| 欧美a一区二区| 国产一区二区在线观看免费| 国产宾馆实践打屁股91| 91麻豆自制传媒国产之光| 激情小说欧美图片| 国产精品系列在线观看| 色噜噜狠狠色综合中国| 在线不卡一区二区| 91久久免费观看| 日韩欧美不卡在线观看视频| 中文字幕免费观看一区| 亚洲一区二区三区在线| 综合婷婷亚洲小说| 午夜精品久久久久久| 国产乱码精品一区二区三区五月婷| 午夜日韩在线电影| 国产成人亚洲精品青草天美| 另类小说图片综合网| 成人高清免费观看| 在线电影院国产精品| 在线免费观看日本一区| 久久久久久免费网| 日韩一区二区三区视频| 国产精品久久久久久久岛一牛影视| 精品国产制服丝袜高跟| 一区二区三区不卡视频| 麻豆精品蜜桃视频网站| 成人激情开心网| 秋霞电影网一区二区| 色综合色狠狠综合色| 不卡电影免费在线播放一区| 欧美日韩高清在线| 中文字幕一区二区三区四区不卡| 国产目拍亚洲精品99久久精品| 久久久久久电影| 奇米色777欧美一区二区| www.亚洲在线| 日韩午夜精品视频| 亚洲一二三四区不卡| 成人精品国产一区二区4080| 欧美一级搡bbbb搡bbbb| 亚洲永久精品大片| 色综合久久中文字幕综合网 | 色94色欧美sute亚洲13| 日韩三级在线观看| 久久综合久久鬼色| 奇米影视在线99精品| 久久男人中文字幕资源站| 欧洲一区二区av| 在线亚洲+欧美+日本专区| 精久久久久久久久久久| 久久久久99精品一区| 亚洲精品日韩一| 成人的网站免费观看| 欧美丝袜丝交足nylons图片| |精品福利一区二区三区| 高清不卡在线观看| 国产农村妇女毛片精品久久麻豆| 亚洲欧美一区二区不卡| 成人av电影免费在线播放| 国产日韩欧美在线一区| 国产成人av影院| 中文字幕欧美激情| 性久久久久久久| 91精品国产一区二区| 久久久久久久久久久电影| 蜜臀av在线播放一区二区三区| 成人亚洲精品久久久久软件| 国产成人精品亚洲777人妖 | 91精品国产麻豆国产自产在线| 3d成人动漫网站| 国产午夜亚洲精品午夜鲁丝片| 亚洲色欲色欲www| 日韩黄色免费电影| 成人激情动漫在线观看| 日韩欧美成人午夜| 国产999精品久久久久久绿帽| 制服视频三区第一页精品| 亚洲国产日韩精品| 精品国产免费一区二区三区香蕉| 亚洲伦理在线精品| 欧美另类一区二区三区| 国产一区二区在线看| 中文字幕中文字幕一区| 欧美在线制服丝袜| 蜜臀av性久久久久蜜臀av麻豆| 欧美日韩在线一区二区| 老司机免费视频一区二区三区| 91精彩视频在线观看| 七七婷婷婷婷精品国产| 国产精品网站在线| 欧美狂野另类xxxxoooo| 福利91精品一区二区三区| 亚洲成人久久影院| 欧美激情在线一区二区三区| 欧美亚洲综合网| 国产激情精品久久久第一区二区| 日韩三级视频在线看| 91一区二区三区在线观看| 日韩在线一区二区三区| 亚洲欧洲三级电影| 欧美精品一区二区在线播放| 免费在线观看精品| 日韩一区日韩二区| 精品国产百合女同互慰| 在线精品亚洲一区二区不卡| 国产一区二区调教| 偷偷要91色婷婷| 有坂深雪av一区二区精品| 久久精品亚洲精品国产欧美| 欧美日韩大陆在线| 波波电影院一区二区三区| 婷婷综合在线观看| 一区二区成人在线视频| 欧美精品自拍偷拍动漫精品| 成人性视频网站| 亚洲一区二区五区| 中文字幕亚洲视频| 国产日韩欧美一区二区三区乱码| 成人性生交大片免费看中文 | 国产亚洲欧美在线| 处破女av一区二区| 亚洲欧美怡红院| 久久综合色鬼综合色| 欧美一区二区啪啪| 国产老肥熟一区二区三区| 青椒成人免费视频| 日韩精品高清不卡| 亚洲高清不卡在线| 亚洲第一福利一区| 久久蜜桃av一区精品变态类天堂 | 视频一区在线视频| 亚洲电影一区二区| 一区二区欧美国产| 亚洲一区二区免费视频| 亚洲一区二区成人在线观看| 日韩精品一区二区三区蜜臀 | 亚洲影院理伦片| 亚洲午夜免费福利视频| 一级女性全黄久久生活片免费| 欧美一区二区三区影视| 7777精品伊人久久久大香线蕉| 国产成人亚洲综合a∨婷婷| 中文字幕日韩精品一区 | www.视频一区| 91在线码无精品| 色av成人天堂桃色av| 欧美日韩成人高清| 欧美一级片在线观看| 亚洲精品在线免费播放| 精品88久久久久88久久久| 国产精品久久看| 精品av久久707| 一区在线中文字幕| 亚洲一区二区三区四区在线免费观看 | 最新高清无码专区| 亚洲精品网站在线观看| 午夜精品福利在线| 亚洲精品视频一区| 肉色丝袜一区二区| 狠狠色狠狠色综合系列| 92国产精品观看| 91精品婷婷国产综合久久竹菊| 99久久久精品免费观看国产蜜| 久久99久国产精品黄毛片色诱| 一区二区三区久久| 激情亚洲综合在线| 日本精品视频一区二区三区| 国产999精品久久| 欧美日韩亚洲综合在线 | 色综合久久综合网97色综合 | 国产亚洲午夜高清国产拍精品| 91麻豆精品国产91久久久使用方法| voyeur盗摄精品| 风间由美中文字幕在线看视频国产欧美| 亚洲h动漫在线| 成人丝袜18视频在线观看| 欧美三级蜜桃2在线观看| 欧美性色综合网| 久久精品一区二区三区不卡| 亚洲国产wwwccc36天堂| 亚洲欧美日韩国产中文在线| 麻豆精品在线视频| 色老头久久综合| 中文字幕电影一区|