Процесс: определение задач для каждой агентской точки на текущий день
Вход: входные данные для анализа и справочник задач
Выход: 3 массива с высоким, средним и низким приоритетами соответственно с агентскими точками
Алгоритм:
Создать 3 массива для хранения агентских точек и задач
2.Проверка агентской точки на наличие задачи с высоким приоритетом:
2.1. Проверка количества дней после выдачи последней карты:
2.1.1. Если количество дней больше 14, то добавление задачи в массив с большим приоритетом и переход к проверке условия для среднего приоритета
2.1.2. Если количество дней меньше 14 и больше 7, проверка - «кол-во выданных карт>0»
2.1.2.1 Если да, то добавление задачи в массив с большим приоритетом и переход к проверке условия для среднего приоритета
2.1.2.2 Если нет, то переход к проверке на наличие задачи со средним приоритетом
Проверка агентской точки на наличие задачи со средним приоритетом:
3.1. (Отношение кол-во выданных карт к кол-ву одобренных заявок) * 100% < 50%
3.1.1. Если да, то добавление задачи в массив со средним приоритетом и переход к проверке условия для низкого приоритета
3.1.2. Если нет, то переход к проверке условия на наличие задачи с низким приоритетом
Проверка агентской точки на наличие задачи с низким приоритетом:
4.1. Проверка, когда подключена точка:
4.1.1. Если точка подключена вчера, то добавление задачи в массив с низким приоритетом и переход к следующей агентской точке
4.1.2. Если не вчера, то проверка была ли доставка карт и материалов
4.1.2.1. Если нет, то добавление задачи в массив с низким приоритетом и переход к следующей агентской точке
4.1.2.2. Если да, то переход к анализу следующей агентской точки
Процесс: построение маршрута для каждого сотрудника на день
Вход: 3 массива с задачами разного приоритета и агентскими точками, массив сотрудников
Выход: массивы с маршрутом движения для каждого сотрудника
Алгоритм:
Распределение задач по сотрудникам:
1.1. Анализ массива задач с высоким приоритетом:
1.1.1. Проверка какая задача с высоким приоритетом ближе всего к сотруднику — синьору, кроме тех у кого уже есть задача с высоким приоритетом
1.1.2. Добавление к каждой задаче сотрудника на текущий день
1.1.3. Удаление агентской точки из массивов со средним и низким приоритетом
1.2. Анализ массива задач со средним приоритетом:
1.2.1. Проверка какая задача со средним приоритетом ближе всего к сотруднику — мидл и синьор, кроме тех, у которых уже есть задача с высоким и средним приоритетом, а также при условии, что у агентской точки отсутствует задача в высоком приоритете
1.2.2. Добавление к каждой задаче сотрудника на текущий день
1.2.3. Удаление агентской точки из массивов с низким приоритетом
1.3. Анализ массива задач с низким приоритетом:
1.3.1. Проверка какая задача с низким приоритетом ближе всего к любому сотруднику, кроме тех, у которых уже есть задача, а также при условии, что у агентской точки отсутствует задача в высоком и среднем приоритете и у сотрудника осталось рабочее время
1.3.2. Добавление к каждой задаче сотрудника на текущий день
Добавление задач в маршрут сотрудников, вычет у каждого сотрудника времени на дорогу+выполнение задачи, обновление текущего адреса сотрудника
Вычет уже распределенных задач(отметка о ее выполнении, удаление задачи из соответствующего массива)
повторение пунктов 1-3 до тех пор, пока задачи с высоким и средним приоритетом не будут выполнены полностью, а на задачи с низким приоритетом нельзя будет назначить сотрудника в рабочее время
Если остались задачи с низким приоритетом, то они переносятся в массив с высоким приоритетом.
Процесс: определение задач для каждой агентской точки на текущий день Вход: входные данные для анализа и справочник задач Выход: 3 массива с высоким, средним и низким приоритетами соответственно с агентскими точками Алгоритм:
2.Проверка агентской точки на наличие задачи с высоким приоритетом: 2.1. Проверка количества дней после выдачи последней карты: 2.1.1. Если количество дней больше 14, то добавление задачи в массив с большим приоритетом и переход к проверке условия для среднего приоритета 2.1.2. Если количество дней меньше 14 и больше 7, проверка - «кол-во выданных карт>0» 2.1.2.1 Если да, то добавление задачи в массив с большим приоритетом и переход к проверке условия для среднего приоритета 2.1.2.2 Если нет, то переход к проверке на наличие задачи со средним приоритетом
Проверка агентской точки на наличие задачи со средним приоритетом: 3.1. (Отношение кол-во выданных карт к кол-ву одобренных заявок) * 100% < 50% 3.1.1. Если да, то добавление задачи в массив со средним приоритетом и переход к проверке условия для низкого приоритета 3.1.2. Если нет, то переход к проверке условия на наличие задачи с низким приоритетом
Проверка агентской точки на наличие задачи с низким приоритетом: 4.1. Проверка, когда подключена точка: 4.1.1. Если точка подключена вчера, то добавление задачи в массив с низким приоритетом и переход к следующей агентской точке 4.1.2. Если не вчера, то проверка была ли доставка карт и материалов 4.1.2.1. Если нет, то добавление задачи в массив с низким приоритетом и переход к следующей агентской точке 4.1.2.2. Если да, то переход к анализу следующей агентской точки
Процесс: построение маршрута для каждого сотрудника на день Вход: 3 массива с задачами разного приоритета и агентскими точками, массив сотрудников Выход: массивы с маршрутом движения для каждого сотрудника Алгоритм:
Распределение задач по сотрудникам: 1.1. Анализ массива задач с высоким приоритетом: 1.1.1. Проверка какая задача с высоким приоритетом ближе всего к сотруднику — синьору, кроме тех у кого уже есть задача с высоким приоритетом 1.1.2. Добавление к каждой задаче сотрудника на текущий день 1.1.3. Удаление агентской точки из массивов со средним и низким приоритетом 1.2. Анализ массива задач со средним приоритетом: 1.2.1. Проверка какая задача со средним приоритетом ближе всего к сотруднику — мидл и синьор, кроме тех, у которых уже есть задача с высоким и средним приоритетом, а также при условии, что у агентской точки отсутствует задача в высоком приоритете 1.2.2. Добавление к каждой задаче сотрудника на текущий день 1.2.3. Удаление агентской точки из массивов с низким приоритетом 1.3. Анализ массива задач с низким приоритетом: 1.3.1. Проверка какая задача с низким приоритетом ближе всего к любому сотруднику, кроме тех, у которых уже есть задача, а также при условии, что у агентской точки отсутствует задача в высоком и среднем приоритете и у сотрудника осталось рабочее время 1.3.2. Добавление к каждой задаче сотрудника на текущий день
Добавление задач в маршрут сотрудников, вычет у каждого сотрудника времени на дорогу+выполнение задачи, обновление текущего адреса сотрудника
Вычет уже распределенных задач(отметка о ее выполнении, удаление задачи из соответствующего массива)
повторение пунктов 1-3 до тех пор, пока задачи с высоким и средним приоритетом не будут выполнены полностью, а на задачи с низким приоритетом нельзя будет назначить сотрудника в рабочее время
Если остались задачи с низким приоритетом, то они переносятся в массив с высоким приоритетом.