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

📄 dispatchlist.java

📁 简介: 今天为网友提供的是JAVA源码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        if (aSchedule.getAssignedEmployee() < 0) {
          aSchedule.setDefaultTimeInterval();
        }

      }
    }
  }

  private void notSufficientEmployees() {
    Vector[] startsSchedules = schedulesGroupedByBucket;
    int cnt = 0;
    for (int i = 0; i < startsSchedules.length; i++) {
      Vector starts = (Vector) startsSchedules[i];
      if (null == starts || starts.size() == 0)
        continue;

      for (int j = 0; j < starts.size(); j++) {
        StartsSchedule aSchedule = (StartsSchedule) starts.elementAt(j);
        cnt++;
        if (aSchedule.getAssignedEmployee() < 0) {

        }
      }
    }
  }

  private Vector[] assignedSchedulesByRoute = new Vector[DataModel.getInstance().
      getRoutes().getNumberOfRoutes()];

  private void insertIntoAssignedRoutes(StartsSchedule aSchedule) {
    Vector schedules = (Vector) assignedSchedulesByRoute[aSchedule.getRouteID() -
        1];
    if (null == schedules) {
      schedules = new Vector();
      schedules.add(aSchedule);
      return;
    }

    for (int i = 0; i < schedules.size(); i++) {
      StartsSchedule tmpSchedule = (StartsSchedule) schedules.elementAt(i);
      if (aSchedule.getBucketID() < tmpSchedule.getBucketID()) {
        schedules.insertElementAt(aSchedule, i);
        return;
      }
    }

    schedules.add(aSchedule);
  }

  private int getCumStartsByBucket(int rteID, int bucketID) {
    Vector schedules = (Vector) assignedSchedulesByRoute[rteID - 1];
    if (null == schedules || schedules.size() == 0) {
      return 0;
    }

    int cnt = 0;
    for (int i = 0; i < schedules.size(); i++) {
      StartsSchedule tmpSchedule = (StartsSchedule) schedules.elementAt(i);
      if (tmpSchedule.getBucketID() < bucketID) {
        cnt += tmpSchedule.getQuantity();
      }
    }

    return cnt;
  }

  private int getCumStartsOfPrevRoutes(int rteID, int bucketID) {
    Vector prevRoutes = DataModel.getInstance().getRoutes().getRoute(rteID).
        getPrevRoutes();
    if (null == prevRoutes || prevRoutes.size() == 0)
      return -1;
    if (prevRoutes.size() == 1) {
      Route r = (Route) prevRoutes.elementAt(0);
      return getCumStarts(r.getRouteID(), bucketID);
    }

    int minCumStarts = Integer.MAX_VALUE;

    for (int i = 0; i < prevRoutes.size(); i++) {
      Route aRoute = (Route) prevRoutes.elementAt(i);
      int cumStarts = getCumStarts(aRoute.getRouteID(), bucketID);
      if (cumStarts < minCumStarts) {
        minCumStarts = cumStarts;
      }
    }

    return minCumStarts;
  }

  private int getCumStarts(int rteID, int bucketID) {
    Vector rteArray = assignedSchedulesByRoute[rteID - 1];
    if (null == rteArray || rteArray.size() == 0) {
      return 0;
    }
    int cumStarts = 0;
    for (int i = 0; i < rteArray.size(); i++) {
      StartsSchedule aSchedule = (StartsSchedule) rteArray.elementAt(i);
      if (aSchedule.getBucketID() < bucketID) {
        cumStarts += aSchedule.getStartsValue();
      }
    }
    return cumStarts;
  }

  private void assignEmployee() {
    Vector[] startsSchedules = schedulesGroupedByBucket;
    ProcessCapabilityTable pct = ProcessCapabilityTable.getInstance();
    int cntc = 0;
    for (int i = 0; i < startsSchedules.length; i++) {
      Vector starts = (Vector) startsSchedules[i];
      if (null == starts || starts.size() == 0)
        continue;
      for (int j = 0; j < starts.size(); j++) {
        StartsSchedule aSchedule = (StartsSchedule) starts.elementAt(j);

        int cumPrevStarts = getCumStartsOfPrevRoutes(aSchedule.getRouteID(),
            aSchedule.getBucketID());
        if (cumPrevStarts > 0) {
          int myCumStarts = this.getCumStartsByBucket(aSchedule.getRouteID(),
              aSchedule.getBucketID());
          int diff = myCumStarts + aSchedule.getQuantity() - cumPrevStarts;
          if (diff > 0) {
            StartsSchedule tmpSchedule = aSchedule.getSplitedSchedule(diff);
            accumToNextBucket(tmpSchedule);
          }
        }

        int leftOverQty = pct.getEmployee(aSchedule);

        if (leftOverQty < 0) {
          if (leftOverQty <= -9000) {
            if (aSchedule.getBucketID() ==
                DataModel.getInstance().getCalendar().getTotalNumOfBuckets()) {
              continue;
            }
            int size = starts.size();
            aSchedule = (StartsSchedule) starts.remove(j);
            accumToNextBucket(aSchedule);
            if (j == size - 1) {
              break;
            }
            else {
              j--;
            }
          }
          continue;
        }
        else if (leftOverQty > 0) {
          StartsSchedule tmpSchedule = aSchedule.getSplitedSchedule(leftOverQty);
          starts.insertElementAt(tmpSchedule, j + 1);
          insertIntoAssignedRoutes(aSchedule);
        }
        else if (leftOverQty == 0) {
          insertIntoAssignedRoutes(aSchedule);
        }

      }
    }
  }

  private void accumToNextBucket(StartsSchedule aSchedule) {
    Vector[] startsSchedules = schedulesGroupedByBucket;

    //return if last already last bucket
    if (aSchedule.getBucketID() >= startsSchedules.length) {
      return;

    }
    Vector starts = (Vector) startsSchedules[aSchedule.getBucketID()];
    if (null == starts || starts.size() == 0) {
      Vector vec = new Vector();
      startsSchedules[aSchedule.getBucketID()] = vec;
      vec.add(aSchedule);
      aSchedule.modifyBucketID(aSchedule.getBucketID() + 1);
      return;
    }

    for (int j = 0; j < starts.size(); j++) {
      StartsSchedule tmpSchedule = (StartsSchedule) starts.elementAt(j);
      if (tmpSchedule.getOrderID().equals(aSchedule.getOrderID()) &&
          tmpSchedule.getStyleID().equals(aSchedule.getStyleID()) &&
          tmpSchedule.getProcessID() == aSchedule.getProcessID()) {
        tmpSchedule.augmentQuantity(aSchedule.getQuantity());
        return;
      }

    }

    starts.add(aSchedule);
    aSchedule.modifyBucketID(aSchedule.getBucketID() + 1);
  }

  private void sortStarts() {
    Vector[] startsSchedules = schedulesGroupedByBucket;
    //Vector[] startsSchedules = ProductionStartsSchedule.getInstance().getStartsSchedules();
    EquipmentCapabilityTable ect = EquipmentCapabilityTable.getInstance();

    for (int i = 0; i < startsSchedules.length; i++) {
      Vector starts = (Vector) startsSchedules[i];
      if (null == starts || starts.size() == 0)
        continue;

      Vector tmpStarts = new Vector();

      for (int j = 0; j < starts.size(); j++) {
        StartsSchedule aSchedule = (StartsSchedule) starts.elementAt(j);
        for (int k = 0; k < tmpStarts.size(); k++) {
          StartsSchedule tmpSchedule = (StartsSchedule) tmpStarts.elementAt(k);
          if (!aSchedule.getStartTime().after(tmpSchedule.getStartTime())) {
            tmpStarts.insertElementAt(aSchedule, k);
            aSchedule = null;
            break;
          }
        }
        if (null != aSchedule) {
          tmpStarts.add(aSchedule);
        }
      }

      startsSchedules[i] = tmpStarts;
    }
  }

  private void sortStartsByEmployee() {
    Vector[] startsSchedules = schedulesGroupedByBucket;
    for (int i = 0; i < startsSchedules.length; i++) {
      Vector starts = (Vector) startsSchedules[i];
      if (null == starts || starts.size() == 0)
        continue;

      startsSchedules[i] = new Vector();
      for (int j = 0; j < starts.size(); j++) {
        StartsSchedule aSchedule = (StartsSchedule) starts.elementAt(j);
        boolean inserted = false;
        for (int k = 0; k < startsSchedules[i].size(); k++) {
          StartsSchedule tmpSchedule = (StartsSchedule) starts.elementAt(k);
          if (aSchedule.getEmployee() < tmpSchedule.getEmployee()) {
            startsSchedules[i].insertElementAt(aSchedule, k);
            inserted = true;
            break;
          }
        }
        if (!inserted) {
          startsSchedules[i].add(aSchedule);
        }
      }
    }
  }

  private Hashtable startsGroupedByEmployee = new Hashtable();

  private void groupStartsByEmployee() {
    Vector[] startsSchedules = schedulesGroupedByBucket;
    for (int i = 0; i < startsSchedules.length; i++) {
      Vector starts = (Vector) startsSchedules[i];
      if (null == starts || starts.size() == 0)
        continue;

      for (int j = 0; j < starts.size(); j++) {
        StartsSchedule aSchedule = (StartsSchedule) starts.elementAt(j);
        int employeeID = aSchedule.getEmployee();
        String key = new Integer(employeeID).toString();
        Vector vec = (Vector) startsGroupedByEmployee.get(key);
        if (null == vec) {
          vec = new Vector();
          startsGroupedByEmployee.put(key, vec);
        }
        vec.add(aSchedule);
      }
    }
  }

  private void assignEquipmentSimple() {
    Enumeration allKeys = startsGroupedByEmployee.keys();
    EquipmentCapabilityTable ect = EquipmentCapabilityTable.getInstance();

    while (allKeys.hasMoreElements()) {
      String key = (String) allKeys.nextElement();

      Vector vec = (Vector) startsGroupedByEmployee.get(key);

      StartsSchedule aSchedule = (StartsSchedule) vec.elementAt(0);
      ect.getEquipmentSimple(aSchedule);
      String equipmentID = aSchedule.getEquipment();
      for (int i = 1; i < vec.size(); i++) {
        StartsSchedule tmpSchedule = (StartsSchedule) vec.elementAt(i);
        tmpSchedule.setEquipment(equipmentID);
      }
    }
  }

  private void assignEquipment() {
    Vector[] startsSchedules = schedulesGroupedByBucket;
    //Vector[] startsSchedules = ProductionStartsSchedule.getInstance().getStartsSchedules();
    EquipmentCapabilityTable ect = EquipmentCapabilityTable.getInstance();

    for (int i = 0; i < startsSchedules.length; i++) {
      Vector starts = (Vector) startsSchedules[i];
      if (null == starts || starts.size() == 0)
        continue;
      for (int j = 0; j < starts.size(); j++) {
        StartsSchedule aSchedule = (StartsSchedule) starts.elementAt(j);
        int status = ect.getEquipment(aSchedule);
        if (status < 0) {
          aSchedule.setEquipment("-1");
        }
      }
    }

  }

  private void assignEquipment2() {
    Vector[] startsSchedules = schedulesGroupedByBucket;
    EquipmentCapabilityTable ect = EquipmentCapabilityTable.getInstance();

    for (int i = 0; i < startsSchedules.length; i++) {
      Vector starts = (Vector) startsSchedules[i];
      if (null == starts || starts.size() == 0)
        continue;

      for (int j = 0; j < starts.size(); j++) {
        StartsSchedule aSchedule = (StartsSchedule) starts.elementAt(j);
        if (!aSchedule.getEquipment().equals("-1"))
          continue;

        ect.getEquipment2(aSchedule);
      }
    }

  }

  private void assignStartEndTime() {
    //Vector[] startsSchedules = ProductionStartsSchedule.getInstance().getStartsSchedules();
    Vector[] startsSchedules = schedulesGroupedByBucket;
    PeriodDateMap pdm = PeriodDateMap.getInstance();

    for (int i = 0; i < startsSchedules.length; i++) {
      Vector starts = (Vector) startsSchedules[i];
      if (null == starts || starts.size() == 0)
        continue;

      for (int j = 0; j < starts.size(); j++) {
        StartsSchedule aSchedule = (StartsSchedule) starts.elementAt(j);
        int bucketID = aSchedule.getBucketID();
        aSchedule.setTimeInterval(pdm.getStartingTime(bucketID),
                                  pdm.getEndingTime(bucketID));
      }
    }

  }

  private Vector[] startsByRoute = new Vector[DataModel.getInstance().getRoutes().
      getNumberOfRoutes()];
  int totalMinutes = 0;
  private void groupScheduleByRoute() {
    Vector[] startsByBucket = schedulesGroupedByBucket;

    for (int i = 0; i < startsByBucket.length; i++) {
      Vector starts = (Vector) startsByBucket[i];
      if (null == starts || starts.size() == 0)
        continue;

      for (int j = 0; j < starts.size(); j++) {
        StartsSchedule aSchedule = (StartsSchedule) starts.elementAt(j);
        totalMinutes += aSchedule.getDurationInMinutes();
        if (null == startsByRoute[aSchedule.getRouteID() - 1]) {
          startsByRoute[aSchedule.getRouteID() - 1] = new Vector();
        }
        startsByRoute[aSchedule.getRouteID() - 1].add(aSchedule);
      }
    }

  }

  private void createSummaryReport() {
    ProductDemands prodDmds = DataModel.getInstance().getProductDemands();
    Hashtable lastRoutes = prodDmds.getLastRoutes();
    Enumeration allLastRoutes = lastRoutes.elements();
    Vector styles = OrderDetailsManHourMap.getInstance().getAllStyles();
    Date catchUpDate = new Date(PeriodDateMap.getInstance().getLastBucketDate().
                                getTime() +
                                7 * 24 * 60 * 60 * 1000);

⌨️ 快捷键说明

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