私の組織では、日付に基づいて注文に取り組んでいるため、最初の作業注文が最初になります。注文を「優先」とマークするオプションもあります。その場合、これらの注文は最初に行われますが、常にではありません。
上司にいくつか質問をしましたが、意味のある答えを得ることができませんでした...
1つの注文に今日の日付があり、別の注文に明日の日付があるが優先度がマークされている場合、最初にどの注文に取り組む必要がありますか?彼はその命令が「優先」と記されていると言った。
1つの注文に今日の日付があり、別の注文の日付が今日から14日で優先度がマークされている場合、最初にどの注文に取り組む必要がありますか?彼は今日の日付があるものを言った。
したがって、問題は注文を適切にキューに入れることですが、それは彼らが正確な公式を持っているものではありません。
2つのプロパティしかないクラスを作成する場合...
public class WorkOrder
{
public DateTime dueDate;
public bool isPriority;
}
それらをキューに入れる最も簡単な方法は何でしょうか?
優先度マーカーは常にアイテムをキューの最前面に移動するとは限らないため、最初に優先度アイテムの「有効期限」が何日シフトするかを確認する必要があります(これは2の間のどこかにあると思います)および5日)。
その情報を取得したら、次の3つのプロパティを持つクラスを作成できます。
public class WorkOrder {
public DateTime dueDate; // The real due date
public bool isPriority;
public DateTime effectiveDueData; // The due date adjusted for priority
}
このクラスは、 Priority Queue に格納できます。ここで、アイテムは最初にeffectiveDueDate
と(同じ日の場合)isPriority
で注文されるため、優先アイテムは特定の発効期日が最初に処理されます。