Требуется готовая программа или совет по разработке программы следующего назначения:
В организации занятой мониторингом за сложной техникой используются только компьютеры под ос юникс.
Работа организована посменно, при этом у разных людей смены разной длительности.
В штате имеется m сотрудников, которые могут быть в отпуске, болеть, и т.д.
Ежедневно в смене стоит n сотрудников.
Определенные сотрудники не могут быть задействованы в определенные дни.
Определенные сотрудники обязаны быть задействованы в определенные дни.
Требуется:
-составлять график дежурств на месяц с возможностью коррекции,
-вести учет служебного времени,
-выводить графики и таблицы на печать в виде файлов .odt и иже с ними
Буду весьма благодарен за советы и ссылки на литературу и другие материалы, способные помочь.
Не уверен,в каком разделе форума должен мой вопрос находиться.
>[оверквотинг удален]
> В штате имеется m сотрудников, которые могут быть в отпуске, болеть, и
> т.д.
> Ежедневно в смене стоит n сотрудников.
> Определенные сотрудники не могут быть задействованы в определенные дни.
> Определенные сотрудники обязаны быть задействованы в определенные дни.
> Требуется:
> -составлять график дежурств на месяц с возможностью коррекции,
> -вести учет служебного времени,
> -выводить графики и таблицы на печать в виде файлов .odt и иже
> с нимиэтим занимается начальник и получает оклад в два раза больше.
так больше он ничего не делает, на это должность ставят туповатых. которые ни к чему более не пригодны.
>>[оверквотинг удален]
> этим занимается начальник и получает оклад в два раза больше.
> так больше он ничего не делает, на это должность ставят туповатых. которые
> ни к чему более не пригодны.мой начальник настолько туп, что сам не знает, что в его отделе происходит, а мне его работу делать не в кайф, по этой причине необходимо этот процесс автоматизировать. может кто подскажет хотя бы как сделать расстановку смен в мм аксесс
>>>[оверквотинг удален]
>> этим занимается начальник и получает оклад в два раза больше.
>> так больше он ничего не делает, на это должность ставят туповатых. которые
>> ни к чему более не пригодны.
> мой начальник настолько туп, что сам не знает, что в его отделе
> происходит, а мне его работу делать не в кайф, по этой
> причине необходимо этот процесс автоматизировать. может кто подскажет хотя бы как
> сделать расстановку смен в мм аксессЕсли у каждого дежурного своя учётка, напиши скрипт на bash -
сохранять имя пользвателя, день когда работал + в конце месяца подсчёт смен этого работника. Все это сливай в один файл и отправляй себе на почту.
> Если у каждого дежурного своя учётка, напиши скрипт на bash -
> сохранять имя пользвателя, день когда работал + в конце месяца подсчёт смен
> этого работника. Все это сливай в один файл и отправляй
> себе на почту.Так суть то в том, чтоб смены спланировать на месяц в перед, а затем уже по полученному графику вычислить переработку рабочего времени. Так как сеть у нас локальная, то особого смысла в том, чтоб пересылать на почту что либо нет.
Собственно, суть в том, что я не могу нигде найти, как именно сделать этот самый планировщик
Ответ, наверное, очевиден? Вы пытаетесь решить работу которая то ли не соответствует выполняемых Вами обязанностям, то ли не соответствует Вашему уровню квалификации. Выбирайте - какая из версия Вам ближе (понятнее, удобнее). Потому как она звучит так, как будто Вы решили написать программу (а точнее - комплекс программ), которая будет работать (в Вашем представлении) по принципу - "Я тут нажал на кнопку - он всё сделало". А это изложение уровня начальников и секретарш.
Стоящая задача изложена достаточно конкретно в моем вопросе. Однако вместо ответа на вопрос, как это сделать Или где узнать, как это сделать почему то получаю кучу версий почему этого делать мне не стоит. Напоминаю, что суть моего вопроса- как сделать планировщик смен. Очень надеюсь что на форуме все же найдется компетентный специалист
> Напоминаю,
> что суть моего вопроса- как сделать планировщик смен. Очень надеюсь что
> на форуме все же найдется компетентный специалистНайдётся, и не один.
Как сделать?
Продумать необходимый функционал, нарисовать интерфейс.
И взять и написать логику на любимом ЯП.Сколько вы готовы заплатить?
То-то же.По изложенному вами ТЗ - берите LibreOffice Calc и не парьтесь.
Или формируйте _полноценное_ ТЗ и обращайтесь к конторам/фрилансерам которые пишут софт.
> Ответ, наверное, очевиден? Вы пытаетесь решить работу которая то ли не соответствует
> выполняемых Вами обязанностям, то ли не соответствует Вашему уровню квалификации. Выбирайте
> - какая из версия Вам ближе (понятнее, удобнее). Потому как она
> звучит так, как будто Вы решили написать программу (а точнее -
> комплекс программ), которая будет работать (в Вашем представлении) по принципу -
> "Я тут нажал на кнопку - он всё сделало". А это
> изложение уровня начальников и секретарш.Более того, тут нужен отдел кадров и охрана труда. Никто из нас (и боюсь что тебя) не знает какие у вас нормы, нормы на переработки, вредности и т.д и т.п.
Составление _алгоритма_ учета - это _не ваша_ работа как АйТишника. А вот реализация - это уже другое дело.
>[оверквотинг удален]
> Определенные сотрудники не могут быть задействованы в определенные дни.
> Определенные сотрудники обязаны быть задействованы в определенные дни.
> Требуется:
> -составлять график дежурств на месяц с возможностью коррекции,
> -вести учет служебного времени,
> -выводить графики и таблицы на печать в виде файлов .odt и иже
> с ними
> Буду весьма благодарен за советы и ссылки на литературу и другие материалы,
> способные помочь.
> Не уверен,в каком разделе форума должен мой вопрос находиться.http://yandex.ru/search/?text=программа%20составления%20расписания%20%20дежурств&lr=213
Таких программ как собак не резанных.
На вскидку:
http://www.softsoft.ru/business/project-management/12671.htmЧто касается варианта с полностью самостоятельным ваянием программы (непонятно зачем оно надо когда полно готовых решений)- то очевидно что на каждого сотрудника нужно завести карточку с атрибутами (когда он может работать, должен работать, не болет ли он и так далее) (на чем писать карточку- без разницы. в любой базе данных.хоть скюлайт) а потом скриптом (на чем угодно) в цикле начинается выборка карточек и попытка вставить в очередной день очередного сотрудника...успешная вставка заносит в спец таблицу- календарь работ на месяц означенного сотрудника.
Как потом вывести на печать? ну в том же мсофисе делаете связь с источником данных и вот вам красивая табличка
И снова bash.
Делаешь скрипт с date, который будет считать до конца месяца и расставлять смены, писать в текстовый файл
И снова bash.
Делаешь скрипт с date, который будет считать до конца месяца и расставлять смены, писать в текстовый файл
Готовые решения имеются, не спорю, но пока что не нашел ни одного подходящего полностью, а значит при работе с ним геморроя будет больше чем без него. И почти все они под винду.
Фрилансеры это, конечно, хорошо, но кроме разработки софта требуется его поддержка, а нанимать фрилансера в штат никто не собирается. Придется самому.
Вообще, помнится, в институте подобные планировщики брали себе в качестве дипломных работ, так что задача эта не такая уж непосильная.
Не думайте, господа, что я сразу полез форум своими вопросами засорять, я действительно пытался воспользоваться готовыми решениями, но у нас немного другая специфика
> Не думайте, господа, что я сразу полез форум своими вопросами засорять, я
> действительно пытался воспользоваться готовыми решениями, но у нас немного другая спецификаПланировщик на 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;
fiif [ $dejurnij -eq 2 ]; then
echo "$data дежурит ${array[2]}";
dejurnij=1;
continue;
fi
done;
Даже вот, вот так интересней:#!/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;
fiif [ $dejurnij -eq 2 ]; then
echo "$data дежурит ${array[2]}";
dejurnij=1;
continue;
fi
done;И от текущей даты на весь месяц просчитывается, кто дежурит. Только все это не на вывод, а в файл, чтобы потом можно было вручную вносить изменения. Опять же, если менять массив, то от текущей даты можно всех автоматически распределить
Ну и окончательный вариант, полностью автоматизирующий процесс составления графика. Нужно только менять массив с именами дежурных - можно хранить в файле, опять же - писать в файл. Можно запускать с помощью 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 дежурит Петров
Ждём оставшихся двух третей на баше. :)))
Цитирую.
> -вести учет служебного времени,
> -выводить графики и таблицы на печать в виде файлов .odt и иже с ними
> Ждём оставшихся двух третей на баше. :)))
> Цитирую.
>> -вести учет служебного времени,
>> -выводить графики и таблицы на печать в виде файлов .odt и иже с нимиНа bash можно все, даже то, чего нельзя, можно на bash.
... Иногда даже складывается ощущение, что мир написан на bash...
но шутку про исходники вы уже все знаете.
> На bash можно все, даже то, чего нельзя, можно на bash.
> ... Иногда даже складывается ощущение, что мир написан на bash...
> но шутку про исходники вы уже все знаете."Графики и таблицы на печать в виде файлов .odt" на баше, Карл! "И иже с ними" (иже еси на небеси) тоже на баше, Карл!!! :))))
>> На bash можно все, даже то, чего нельзя, можно на bash.
>> ... Иногда даже складывается ощущение, что мир написан на bash...
>> но шутку про исходники вы уже все знаете.
> "Графики и таблицы на печать в виде файлов .odt" на баше,
> Карл! "И иже с ними" (иже еси на небеси) тоже на
> баше, Карл!!! :))))Субъективно, задача высосана и пальца. Число дежурных неизвестно, они могут болеть, в некоторые дни некоторые не могут работать, в какие мы не знаем.
Т.е. условия неизвестны. Нет чтобы сесть и написать на квартал вперед в LibreOffice график, уйдет минут 20, и забыть об этом.
> Нет чтобы сесть и написать на квартал вперед в
> LibreOffice график, уйдет минут 20, и забыть об этом.Зачем? Проще задать вопрос. Вы вот набросали на коленке скрипт, товарищ выше вместо автора поискал аналоги, используя традиционный гугл.
>> Нет чтобы сесть и написать на квартал вперед в
>> LibreOffice график, уйдет минут 20, и забыть об этом.
> Зачем? Проще задать вопрос. Вы вот набросали на коленке скрипт, товарищ
> выше вместо автора поискал аналоги, используя традиционный гугл.Прошло уже 2 дня, можно было вже на пару лет вперед составить.
Люди сами себе жизнь усложняют...