URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10003
[ Назад ]

Исходное сообщение
"программа планировщик под юникс"

Отправлено Алексей , 12-Май-15 07:26 
Требуется готовая программа или совет по разработке программы следующего назначения:
В организации занятой мониторингом за сложной техникой используются только компьютеры под ос юникс.
Работа организована посменно, при этом у разных людей смены разной длительности.
В штате имеется m сотрудников, которые могут быть в отпуске, болеть, и т.д.
Ежедневно в смене стоит n сотрудников.
Определенные сотрудники не могут быть задействованы в определенные дни.
Определенные сотрудники обязаны быть задействованы в определенные дни.
Требуется:
-составлять график дежурств на месяц с возможностью коррекции,
-вести учет служебного времени,
-выводить графики и таблицы на печать в виде файлов .odt и иже с ними
Буду весьма благодарен за советы и ссылки на литературу и другие материалы, способные помочь.
Не уверен,в каком разделе форума должен мой вопрос находиться.

Содержание

Сообщения в этом обсуждении
"программа планировщик под юникс"
Отправлено дима , 12-Май-15 11:31 
>[оверквотинг удален]
> В штате имеется m сотрудников, которые могут быть в отпуске, болеть, и
> т.д.
> Ежедневно в смене стоит n сотрудников.
> Определенные сотрудники не могут быть задействованы в определенные дни.
> Определенные сотрудники обязаны быть задействованы в определенные дни.
> Требуется:
> -составлять график дежурств на месяц с возможностью коррекции,
> -вести учет служебного времени,
> -выводить графики и таблицы на печать в виде файлов .odt и иже
> с ними

этим занимается начальник и получает оклад в два раза больше.
так больше он ничего не делает, на это должность ставят туповатых. которые ни к чему более не пригодны.


"программа планировщик под юникс"
Отправлено Алексей , 12-Май-15 11:39 
>>[оверквотинг удален]
> этим занимается начальник и получает оклад в два раза больше.
> так больше он ничего не делает, на это должность ставят туповатых. которые
> ни к чему более не пригодны.

мой начальник настолько туп, что сам не знает, что в его отделе происходит, а мне его работу делать не в кайф, по этой причине необходимо этот процесс автоматизировать. может кто подскажет хотя бы как сделать расстановку смен в мм  аксесс



"программа планировщик под юникс"
Отправлено Black_Ru , 12-Май-15 13:41 
>>>[оверквотинг удален]
>> этим занимается начальник и получает оклад в два раза больше.
>> так больше он ничего не делает, на это должность ставят туповатых. которые
>> ни к чему более не пригодны.
> мой начальник настолько туп, что сам не знает, что в его отделе
> происходит, а мне его работу делать не в кайф, по этой
> причине необходимо этот процесс автоматизировать. может кто подскажет хотя бы как
> сделать расстановку смен в мм  аксесс

Если у каждого дежурного своя учётка, напиши скрипт на bash -
сохранять имя пользвателя, день когда работал + в конце месяца подсчёт смен этого работника.  Все это сливай в один файл и отправляй себе на почту.


"программа планировщик под юникс"
Отправлено Алексей , 12-Май-15 14:02 

> Если у каждого дежурного своя учётка, напиши скрипт на bash -
> сохранять имя пользвателя, день когда работал + в конце месяца подсчёт смен
> этого работника.  Все это сливай в один файл и отправляй
> себе на почту.

Так суть то в том, чтоб смены спланировать на месяц в перед, а затем уже по полученному графику вычислить переработку рабочего времени. Так как сеть у нас локальная, то особого смысла в том, чтоб пересылать на почту что либо нет.
Собственно, суть в том, что я не могу нигде найти, как именно сделать этот самый планировщик


"программа планировщик под юникс"
Отправлено Дядя_Федор , 12-Май-15 15:40 
Ответ, наверное, очевиден? Вы пытаетесь решить работу которая то ли не соответствует выполняемых Вами обязанностям, то ли не соответствует Вашему уровню квалификации. Выбирайте - какая из версия Вам ближе (понятнее, удобнее). Потому как она звучит так, как будто Вы решили написать программу (а точнее - комплекс программ), которая будет работать (в Вашем представлении) по принципу - "Я тут нажал на кнопку - он всё сделало". А это изложение уровня начальников и секретарш.

"программа планировщик под юникс"
Отправлено Алексей , 12-Май-15 18:38 
Стоящая задача изложена достаточно конкретно в моем вопросе. Однако вместо ответа на вопрос, как это сделать Или где узнать, как это сделать почему то получаю кучу версий почему этого делать мне не стоит. Напоминаю, что суть моего вопроса- как сделать планировщик смен. Очень надеюсь что на форуме все же найдется компетентный специалист


"программа планировщик под юникс"
Отправлено omnomnim , 12-Май-15 18:48 
> Напоминаю,
> что суть моего вопроса- как сделать планировщик смен. Очень надеюсь что
> на форуме все же найдется компетентный специалист

Найдётся, и не один.
Как сделать?
Продумать необходимый функционал, нарисовать интерфейс.
И взять и написать логику на любимом ЯП.

Сколько вы готовы заплатить?
То-то же.

По изложенному вами ТЗ - берите LibreOffice Calc и не парьтесь.
Или формируйте _полноценное_ ТЗ и обращайтесь к конторам/фрилансерам которые пишут софт.


"программа планировщик под юникс"
Отправлено Pahanivo , 15-Май-15 08:41 
> Ответ, наверное, очевиден? Вы пытаетесь решить работу которая то ли не соответствует
> выполняемых Вами обязанностям, то ли не соответствует Вашему уровню квалификации. Выбирайте
> - какая из версия Вам ближе (понятнее, удобнее). Потому как она
> звучит так, как будто Вы решили написать программу (а точнее -
> комплекс программ), которая будет работать (в Вашем представлении) по принципу -
> "Я тут нажал на кнопку - он всё сделало". А это
> изложение уровня начальников и секретарш.

Более того, тут нужен отдел кадров и охрана труда. Никто из нас (и боюсь что тебя) не знает какие у вас нормы, нормы на переработки, вредности и т.д и т.п.
Составление _алгоритма_ учета - это _не ваша_ работа как АйТишника. А вот реализация - это уже другое дело.


"программа планировщик под юникс"
Отправлено Square , 12-Май-15 23:38 
>[оверквотинг удален]
> Определенные сотрудники не могут быть задействованы в определенные дни.
> Определенные сотрудники обязаны быть задействованы в определенные дни.
> Требуется:
> -составлять график дежурств на месяц с возможностью коррекции,
> -вести учет служебного времени,
> -выводить графики и таблицы на печать в виде файлов .odt и иже
> с ними
> Буду весьма благодарен за советы и ссылки на литературу и другие материалы,
> способные помочь.
> Не уверен,в каком разделе форума должен мой вопрос находиться.

http://yandex.ru/search/?text=программа%20составления%20расписания%20%20дежурств&lr=213

Таких программ как собак не резанных.
На вскидку:
http://www.softsoft.ru/business/project-management/12671.htm

Что касается варианта с полностью самостоятельным ваянием программы (непонятно зачем оно надо когда полно готовых решений)- то очевидно что на каждого сотрудника нужно завести карточку с атрибутами  (когда он может работать, должен работать, не болет ли он и так далее) (на чем писать карточку- без разницы. в любой базе данных.хоть скюлайт) а потом скриптом (на чем угодно) в цикле начинается выборка карточек и попытка вставить в очередной день очередного сотрудника...успешная вставка заносит в спец таблицу- календарь работ на месяц означенного сотрудника.

Как потом вывести на печать? ну в том же мсофисе делаете связь с источником данных и вот вам красивая табличка


"программа планировщик под юникс"
Отправлено Raven , 13-Май-15 04:00 
И снова bash.
Делаешь скрипт с date, который будет считать до конца месяца и расставлять смены, писать в текстовый файл

"программа планировщик под юникс"
Отправлено dcc9 , 13-Май-15 04:00 
И снова bash.
Делаешь скрипт с date, который будет считать до конца месяца и расставлять смены, писать в текстовый файл

"программа планировщик под юникс"
Отправлено Алексей , 13-Май-15 04:40 
Готовые решения имеются, не спорю, но пока что не нашел ни одного подходящего полностью, а значит при работе с ним геморроя будет больше чем без него. И почти все они под винду.
Фрилансеры это, конечно, хорошо, но кроме разработки софта требуется его поддержка, а нанимать фрилансера в штат никто не собирается. Придется самому.
Вообще, помнится, в институте подобные планировщики брали себе в качестве дипломных работ, так что задача эта не такая уж непосильная.



"программа планировщик под юникс"
Отправлено Алексей , 13-Май-15 05:40 
Не думайте, господа, что я сразу полез форум своими вопросами засорять, я действительно пытался воспользоваться готовыми решениями, но у нас немного другая специфика

"программа планировщик под юникс"
Отправлено Black_Ru , 13-Май-15 11:04 
> Не думайте, господа, что я сразу полез форум своими вопросами засорять, я
> действительно пытался воспользоваться готовыми решениями, но у нас немного другая специфика

Планировщик на bash. Благодарить не надо. = )

!/bin/bash

data=`date +%d`;

declare -a array;
array=( [1]=Иванов [2]=Петров );

dejurnij=1;

while [ $data -lt 27 ]
        do
        data=$(($data+1));
        if [ $dejurnij -eq 1 ]; then
echo "$data дежурит ${array[1]}";
dejurnij=2;
continue;
fi

if [ $dejurnij -eq 2 ]; then
echo "$data дежурит  ${array[2]}";
dejurnij=1;
continue;
fi
done;


"программа планировщик под юникс"
Отправлено Black_Ru , 13-Май-15 12:36 
Даже вот, вот так интересней:

#!/bin/bash

all_month=`cal | tail -2 |  grep -E -o "[0-9]{2,}$"`;
data=`date +%d`;

declare -a array;
array=( [1]=Иванов [2]=Петров );

dejurnij=1;

while [ $data -lt $all_month ]
        do
        data=$(($data+1));
        if [ $dejurnij -eq 1 ]; then
echo "$data дежурит ${array[1]}";
dejurnij=2;
continue;
fi

if [ $dejurnij -eq 2 ]; then
echo "$data дежурит  ${array[2]}";
dejurnij=1;
continue;
fi
done;

И от текущей даты на весь месяц просчитывается, кто дежурит. Только все это не на вывод, а в файл, чтобы потом можно было вручную вносить изменения. Опять же, если менять массив, то от текущей даты можно всех автоматически распределить


"программа планировщик под юникс"
Отправлено Black_Ru , 13-Май-15 18:34 
Ну и окончательный вариант, полностью автоматизирующий процесс составления графика. Нужно  только менять массив с именами дежурных - можно хранить в файле, опять же - писать в файл. Можно запускать с помощью cron 1 числа каждого месяца:

#!/bin/bash

dejurnij=1;
cou_nt=1;

function count_name ()  {
if [ $cou_nt -eq $all_dejur ]; then
cou_nt=0;
fi
}

all_month=`cal | tail -2 |  grep -E -o "[0-9]{2,}$"`;
data=`date +%d`;
data2=`date +'%m-%Y'`;

declare -a array;
array=( [1]=Иванов [2]=Петров [3]=Сидоров [4]=Обама );
all_dejur=${#array[@]};

while [ $data -lt $all_month ]
        do
        data=$(($data+1));
        if [ $dejurnij -eq $cou_nt ]; then
echo "$data  $data2  дежурит ${array[$cou_nt]}";
count_name "${!cou_nt} ${!all_dejur}";
cou_nt=$(($cou_nt+1));
dejurnij=$cou_nt;
continue;
fi
done;

Получаем вот такой замечательный вывод:

14  05-2015  дежурит Иванов
15  05-2015  дежурит Петров
16  05-2015  дежурит Сидоров
17  05-2015  дежурит Обама
18  05-2015  дежурит Иванов
19  05-2015  дежурит Петров
20  05-2015  дежурит Сидоров
21  05-2015  дежурит Обама
22  05-2015  дежурит Иванов
23  05-2015  дежурит Петров
24  05-2015  дежурит Сидоров
25  05-2015  дежурит Обама
26  05-2015  дежурит Иванов
27  05-2015  дежурит Петров
28  05-2015  дежурит Сидоров
29  05-2015  дежурит Обама
30  05-2015  дежурит Иванов
31  05-2015  дежурит Петров


"программа планировщик под юникс"
Отправлено Дядя_Федор , 13-Май-15 21:32 
Ждём оставшихся двух третей на баше. :)))
Цитирую.
> -вести учет служебного времени,
> -выводить графики и таблицы на печать в виде файлов .odt и иже с ними

"программа планировщик под юникс"
Отправлено Black_Ru , 13-Май-15 22:24 
> Ждём оставшихся двух третей на баше. :)))
> Цитирую.
>> -вести учет служебного времени,
>> -выводить графики и таблицы на печать в виде файлов .odt и иже с ними

На bash можно все, даже то, чего нельзя, можно на bash.
... Иногда даже складывается ощущение, что мир написан на bash...
но шутку про исходники вы уже все знаете.


"программа планировщик под юникс"
Отправлено Дядя_Федор , 14-Май-15 08:56 
> На bash можно все, даже то, чего нельзя, можно на bash.
> ... Иногда даже складывается ощущение, что мир написан на bash...
> но шутку про исходники вы уже все знаете.

"Графики и таблицы на печать в виде файлов .odt" на баше, Карл! "И иже с ними" (иже еси на небеси) тоже на баше, Карл!!! :))))


"программа планировщик под юникс"
Отправлено Black_Ru , 14-Май-15 10:03 
>> На bash можно все, даже то, чего нельзя, можно на bash.
>> ... Иногда даже складывается ощущение, что мир написан на bash...
>> но шутку про исходники вы уже все знаете.
>  "Графики и таблицы на печать в виде файлов .odt" на баше,
> Карл! "И иже с ними" (иже еси на небеси) тоже на
> баше, Карл!!! :))))

Субъективно, задача высосана и пальца. Число дежурных неизвестно, они могут болеть, в некоторые дни некоторые не могут работать, в какие мы не знаем.
Т.е. условия неизвестны. Нет чтобы сесть и написать на квартал вперед в LibreOffice график, уйдет минут 20, и забыть об этом.


"программа планировщик под юникс"
Отправлено Дядя_Федор , 14-Май-15 13:12 
> Нет чтобы сесть и написать на квартал вперед в
> LibreOffice график, уйдет минут 20, и забыть об этом.

Зачем? Проще задать вопрос. Вы вот набросали на коленке скрипт, товарищ выше вместо автора поискал аналоги, используя традиционный гугл.



"программа планировщик под юникс"
Отправлено Black_ru , 14-Май-15 19:10 
>> Нет чтобы сесть и написать на квартал вперед в
>> LibreOffice график, уйдет минут 20, и забыть об этом.
>  Зачем? Проще задать вопрос. Вы вот набросали на коленке скрипт, товарищ
> выше вместо автора поискал аналоги, используя традиционный гугл.

Прошло уже 2 дня, можно было вже на пару лет вперед составить.
Люди сами себе жизнь усложняют...