重新计算制造装配的开始时间

时间:2018-06-02 17:46:04

标签: scheduling production

  

问题:   需要根据可用的生产日期,轮班工作时间以及每个轮班期间的休息时间更新每个版本的估计开始时间。班次和休息日期是任意的,只有时间部分是正确的。我正在寻找的是一种更好的方法来嵌套这些对象,以简化关键决策,例如下一个生产日,超过班次结束时间和增加休息时间。我已将自己编入角落。在午夜工作时处理额外的日期转换并最终强制解决问题。请参阅下面的示例: currentdatetime 始终是建议的下一个开始时间。

public MESShift IsWithinShifts(DateTime currentdatetime)
    {
        MESShift activeShift = null;

        foreach (MESShift shift in shifts)
        {
            if (shift.Shift == 1)
            {
                if (currentdatetime >= shift.StartTime && currentdatetime <= shift.EndTime)
                {
                    activeShift = shift;
                    break;
                }
            }
            else
            {
                if (shift.EndTime.Hour < 3)
                {
                    if (currentdatetime >= shift.StartTime)
                    {
                        activeShift = shift;
                        break;
                    }
                    else
                    {
                        if (currentdatetime.Hour < 3 && currentdatetime.TimeOfDay <= shift.EndTime.TimeOfDay)
                        {
                            activeShift = shift;
                        }
                    }
                }
                else
                {
                    if (currentdatetime >= shift.StartTime && currentdatetime <= shift.EndTime)
                    {
                        activeShift = shift;
                        break;
                    }
                }

            }
        }

        return activeShift;
    }
  

我最初的概念很简单,只需要根据当前开始时间的时间开始第一个版本,并添加剩余的分钟以获得结束时间。每个结束时间将是下一个版本的开始时间,除非结束时间超过班次或在从发布开始到结束时间的时间跨度内开始中断。如果超出当前的班次,则根据可用的生产日期选择下一班次已被证明是非常重要的。

<小时/>     生产日期 / 转移

=================      ===========================================================   
    6/1/2018            Line | Shift | ShiftStartTime      |  ShiftEndTime           
    6/4/2018            =====+=======+=====================+======================   
    6/5/2018               1 |  1    |1899-12-30 06:00:00  | 1899-12-30 14:30:00     
    6/6/2018            =====+=======+=====================+======================
                           1 |  2    |1899-12-30 17:00:00  | 1899-12-31 01:30:00  
                        =====+=======+=====================+======================

<小时/>     的

Line | Shift |    BreakStartTime   |   BreakEndTime      |  BreakMinutes
=====+=======+=====================+=====================+===============
  1  |   1   | 1899-12-30 09:00:00 | 1899-12-30 09:10:00 |      10
=====+=======+=====================+=====================+===============
  1  |   1   | 1899-12-30 11:45:00 | 1899-12-30 12:15:00 |      30
=====+=======+=====================+=====================+===============
  1  |   1   | 1899-12-30 13:55:00 | 1899-12-30 14:05:00 |      10
=====+=======+=====================+=====================+===============
  1  |   2   | 1899-12-30 15:30:00 | 1899-12-30 15:40:00 |      10
=====+=======+=====================+=====================+===============
  1  |   2   | 1899-12-30 18:30:00 | 1899-12-30 19:00:00 |      30
=====+=======+=====================+=====================+===============
  1  |   2   | 1899-12-30 20:36:00 | 1899-12-30 20:50:00 |      14
=====+=======+=====================+=====================+===============

<小时/>     生产版本

Release  |Minutes |EST_START_TIME | Start  |  end 
=========+========+===============+========+=======+
 10111   | 39.149 | 6/1/18 6:00 AM|        |       |
=========+========+===============+========+=======+
 10112   |125.277 | 6/1/18 6:46 AM|        |       |       
=========+========+===============+========+=======+       
 10113   |  20.88 |6/1/18 10:20 AM|        |       |       
=========+========+===============+========+=======+       
 10114   |  20.88 |6/1/18 10:44 AM|        |       |       
=========+========+===============+========+=======+       
 10115   |  20.88 |6/1/18 11:08 AM|        |       |
=========+========+===============+========+=======+
 10116   | 41.759 |6/1/18 11:32 AM|        |       |   
=========+========+===============+========+=======+
 10117   | 62.639 |6/1/18 12:51 PM|        |       |
=========+========+===============+========+=======+
 10118   | 41.759 | 6/1/18 2:15 PM|        |       |  
=========+========+===============+========+=======+
 10119   | 41.759 | 6/2/18 6:34 AM|        |       |
=========+========+===============+========+=======+
 10120   | 13.702 | 6/2/18 7:23 AM|        |       |
=========+========+===============+========+=======+
 10120   | 69.816 | 6/2/18 7:23 AM|        |       |
=========+========+===============+========+=======+
 10121   |104.398 | 6/2/18 9:57 AM|        |       |
=========+========+===============+========+=======+
 10122   | 83.518 |6/2/18 12:31 PM|        |       |
=========+========+===============+========+=======+
 10123   | 41.759 | 6/2/18 2:20 PM|        |       |
=========+========+===============+========+=======+
 10124   | 41.759 | 6/4/18 6:39 AM|        |       |
=========+========+===============+========+=======+
 10125   | 62.639 | 6/4/18 7:28 AM|        |       |
=========+========+===============+========+=======+
 10126   | 41.759 | 6/4/18 9:37 AM|        |       |
=========+========+===============+========+=======+
 10127   | 11.745 |6/4/18 10:26 AM|        |       |
=========+========+===============+========+=======+
 10127   | 30.014 |6/4/18 10:26 AM|        |       |
=========+========+===============+========+=======+

0 个答案:

没有答案