Диплом: Автоматизация процесса внутрикорпоративного взаимодействия сотрудников компании ООО "Сакура"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
48
Главное окно:
1. Входящая
2. Исходящая
3. Справочники
4. Отчёты
5. Настройки
Входящая
1. Просмотреть
2. Просмотреть
документацию
Исходящая:
1. Добавить
2. Редактировать
3. Удалить
4. Отправить
5. Документация
6. Получатели
Справочники:
1. Назначение
2. Отдел
3. Должность
4. Сотрудники
Назначение:
1. Добавить
2. Редактировать
3. Удалить
Отдел:
1. Добавить
2. Редактировать
3. Удалить
Должность:
1. Добавить
2. Редактировать
3. Удалить
Сотрудники:
1. Добавить
2. Редактировать
3. Удалить
Отчёты:
1. Формировать
2. Отмена
Корреспонденция:
1. Сохранить
2. Отменить
Получатель:
1. Сохранить
2. Отменить
Документ:
1. Сохранить
2. Отменить
Подключение к БД:
1. Сохранить
2. Отмена
Пользователи:
1. Добавить
2. Редактировать
3. Удалить
Рис. 2.4. Сценарий диалога
Согласно сценарию, в системе должно быть главное окно, которое
содержит главное меню и вкладки: входящая и исходящая корреспонденция.
При открытии вкладки входящей корреспонденции можно просмотреть
49
сообщение или скачать файлы, которые прикреплены к сообщению.
При открытии вкладки исходящая корреспонденция можно добавить,
редактировать или удалить сообщение до отправки. Можно прикрепить документ
и указать адресатов. После отправки работа с исходящим сообщением не
возможна.
Для вызова окон работы со справочной информацией требуется
воспользоваться главным меню, пунктом «справочники».
Выбрав пункт «назначения», откроется окно, в котором можно добавить,
редактировать или удалить записи в таблицу справочника назначения.
Выбрав пункт «отделы», откроется окно, в котором можно добавить,
редактировать или удалить записи в таблицу справочника назначения.
Выбрав пункт «должности», откроется окно, в котором можно добавить,
редактировать или удалить записи в таблицу справочника назначения.
Выбрав пункт «сотрудники», откроется окно, в котором можно добавить,
редактировать или удалить записи в таблицу справочника назначения.
Формирование отчётов возможно через главное меню пункт «Отчёты». В
пункте выбрать тип отчёта. В открывшемся окне требуется указать параметры и
сформировать отчёт.
Для формирования отчёта о корреспонденции за период указывается
диапазон дат в качестве параметров.
Для формирования отчёта о корреспонденции за период по сотруднику
указывается диапазон дат и идентификатор сотрудника в качестве параметров.
Каждый отчёт можно сохранить в файл формата pdf.
Для формирования учётных данных пользователей требуется выбрать в
главном меню пункт «Настройки» и «Пользователи». Пользователями являются
сотрудники компании, для них назначаются пароли и выбирается степень прав –
обычный сотрудник, или администратор. Администраторами в большей степени
выступают сотрудники секретариата.
Для настройки системы в главном меню выбирается пункт «настройки» и
«подключение к БД». В настройках указывается сервер, каталог базы данных,
пользователь БД и пароль или авторизация учётной записи ОС Windows.
50
2.3.2 Характеристика базы данных
База данных ИС внутренней корреспонденции включает следующие
таблицы:
сотрудник;
корреспонденция;
отношение;
документ;
отдел;
должность;
назначение.
На рисунке 2.5 представлена логическая модель базы данных в CASE-
средстве ErWin DataModeler.
Рис. 2.5. Логическая модель БД
Каждому атрибуту таблицы БД были определены типы данных, в
результате, разработана физическая модель БД – рисунок 2.6.
Должность
Код
Название
Сотру дник
Код
ФИО
Должность_код (FK)
Отдел_код (FK)
Телефон
Пароль
Администратор
Отдел
Код
Название
Корреспонденция
Код
Тема
Описание
Отправлено
Назначение_код (FK)
ОтправленоФлаг
Назначение
Код
Название
Документ
Код
Тема
Имя
Содержание
Корреспонденция_код (FK)
Отношение
Корреспондент_код (FK)
Сотру дник_код (FK)
Отправитель
51
Рис. 2.6. Физическая модель БД
Полученная модель была конвертирована в скрипт SQL для СУБД MS SQL
Server. В результате, получена база данных, описание которой представлено в
таблицах 2.6 – 2.12.
Таблица 2.6
Отношение
Поле
Тип
Длина
Ограничение
Корреспонденция_код
Int
-
PK, FK
Сотрудник_код
Int
-
PK, FK
Отправитель
Bit
-
-
Должность
Код: int
Наз вание: varchar(50)
Сотру дник
Код: int
ФИО: varchar(50)
Должность_код: int (FK)
Отдел_код: int (FK)
Телефон: varchar(50)
Пароль: varbinary(128)
Администратор: bit
Отдел
Код: int
Наз вание: varchar(50)
Корреспонденция
Код: int
Тема: varchar(50)
Описание: varchar(100)
Отправлено: datetime
Наз начение_код: int (FK)
ОтправленоФлаг: bit
Наз начение
Код: int
Наз вание: varchar(50)
Доку мент
Код: int
Тема: varchar(50)
Имя: varchar(50)
Содержание: varbinary(max)
Корреспонденция_код: int (FK)
Отношение
Корреспондент_код: int (FK)
Сотру дник_код: int (FK)
Отправитель: bit
52
Таблица 2.7
Корреспонденция
Поле
Тип
Длина
Ограничение
Код
Int
-
PK
Назначение_код
Int
-
FK
Тема
Varchar
50
Not null
Описание
Varchar
200
-
Отправлено
Datetime
-
-
ОтправленоФлаг
Bit
-
-
Таблица 2.8
Сотрудник
Поле
Тип
Длина
Ограничение
Код
Int
-
PK
ФИО
Varchar
50
Not null
Телефон
Varchar
50
-
Отдел
Int
-
FK
Должность
Int
-
FK
Пароль
Varbinary
128
-
Администратор
Bit
-
-
Таблица 2.9
Документ
Поле
Тип
Длина
Ограничение
Код
Int
-
PK
Тема
Varchar
50
Not null
Имя
Varchar
50
-
Содержание
Varbinary
Max
-
Корреспонденция_код
Int
-
FK, not null
53
Таблица 2.10
Отдел
Поле
Тип
Длина
Ограничение
Код
Int
-
PK
Название
Varchar
50
Not null
Таблица 2.11
Должность
Поле
Тип
Длина
Ограничение
Код
Int
-
PK
Название
Varchar
50
Not null
Таблица 2.12
Назначение
Поле
Тип
Длина
Ограничение
Код
Int
-
PK
Название
Varchar
50
Not null
На рисунке 2.7 представлена полученная схема данных в MS SQL
Management Studio.
54
Рис. 2.7. Схема данных
Для получения отчётов были разработаны представление:
«SELECT e.Код, e.ФИО + ' ' + d.Название + ' ' + p.Название AS
Сотрудник, r0.Корреспонденция_код AS [Код полученного], c0.Отправлено AS
Получено, r1.Корреспонденция_код AS [Код отправленного], c1.Отправлено
FROM dbo.Сотрудник AS e INNER JOIN
dbo.Отдел AS d ON d.Код = e.Отдел_код INNER JOIN
dbo.Должность AS p ON p.Код = e.Должность_код LEFT
OUTER JOIN
55
dbo.Отношение AS r0 ON r0.Сотрудник_код = e.Код AND
ISNULL(r0.Отправитель, 0) = 0 LEFT OUTER JOIN
dbo.Корреспонденция AS c0 ON c0.Код =
r0.Корреспонденция_код LEFT OUTER JOIN
dbo.Отношение AS r1 ON r1.Сотрудник_код = e.Код AND
ISNULL(r1.Отправитель, 0) = 1 LEFT OUTER JOIN
dbo.Корреспонденция AS c1 ON c1.Код =
r1.Корреспонденция_код».
Для формирования отчёта о корреспонденции за период выполняется
запрос:
«select
vr.Сотрудник
, (select Count(distinct vr0.[Код отправленного]) from ViewReport vr0 where
(vr.Код=vr0.Код) and (vr0.Получено between :sd and :ed)) as [Количество
отправленных]
, (select Count(distinct vr1.[Код полученного]) from ViewReport vr1 where
(vr.Код=vr1.Код) and (vr1.Получено between :sd and :ed)) as [Количество
полученных]
from Сотрудник e
inner join ViewReport vr on vr.Код=e.Код
group by vr.Сотрудник, vr.Код
order by vr.Сотрудник».
Для формирования отчёта о корреспонденции за период по сотруднику
выполняется запрос:
«select
vr.Сотрудник
, (select Count(distinct vr0.[Код отправленного]) from ViewReport vr0 where
(vr.Код=vr0.Код) and (vr0.Получено between :sd and :ed)) as [Количество
отправленных]
, (select Count(distinct vr1.[Код полученного]) from ViewReport vr1 where
(vr.Код=vr1.Код) and (vr1.Получено between :sd and :ed)) as [Количество
полученных]
from Сотрудник e
56
inner join ViewReport vr on vr.Код=e.Код
where vr.Код=:idEmpl
group by vr.Сотрудник, vr.Код
order by vr.Сотрудник».
Для демонстрации списка входящей корреспонденции разработано
представление:
«SELECT dbo.Корреспонденция.Код, dbo.Корреспонденция.Тема,
dbo.Корреспонденция.Отправлено, dbo.Назначение.Название AS Назначение,
dbo.Сотрудник.ФИО + ' ' + dbo.Должность.Название + ' ' +
dbo.Отдел.Название AS Отправитель, o2.Сотрудник_код,
dbo.Корреспонденция.Описание, dbo.Корреспонденция.Назначение_код
FROM dbo.Корреспонденция INNER JOIN
dbo.Назначение ON dbo.Корреспонденция.Назначение_код
= dbo.Назначение.Код INNER JOIN
dbo.Отношение AS o1 ON dbo.Корреспонденция.Код =
o1.Корреспонденция_код AND ISNULL(o1.Отправитель, 0) = 1 INNER JOIN
dbo.Отношение AS o2 ON dbo.Корреспонденция.Код =
o2.Корреспонденция_код AND ISNULL(o2.Отправитель, 0) = 0 INNER JOIN
dbo.Сотрудник ON o1.Сотрудник_код = dbo.Сотрудник.Код
INNER JOIN
dbo.Должность ON dbo.Сотрудник.Должность_код =
dbo.Должность.Код INNER JOIN
dbo.Отдел ON dbo.Сотрудник.Отдел_код = dbo.Отдел.Код
WHERE (ISNULL(dbo.Корреспонденция.ОтправленоФлаг, 0) = 1)».
Для демонстрации списка исходящей корреспонденции разработано
представление:
«SELECT dbo.Корреспонденция.Код, CASE WHEN
isNull(dbo.Корреспонденция.ОтправленоФлаг, 0) = 1 THEN 'Да' ELSE 'Нет' END
AS Отправлено, dbo.Корреспонденция.Отправлено AS [Дата отправки],
dbo.Корреспонденция.Тема, dbo.Назначение.Название AS
Назначение, dbo.Отношение.Сотрудник_код,
dbo.Корреспонденция.ОтправленоФлаг, dbo.Корреспонденция.Описание,
dbo.Корреспонденция.Назначение_код
57
FROM dbo.Корреспонденция INNER JOIN
dbo.Назначение ON dbo.Корреспонденция.Назначение_код
= dbo.Назначение.Код INNER JOIN
dbo.Отношение ON dbo.Корреспонденция.Код =
dbo.Отношение.Корреспонденция_код AND
ISNULL(dbo.Отношение.Отправитель, 0) = 1».
Пароль пользователя в базе хранится в зашифрованном виде. Для
добавления пароля используется следующий запрос:
«OPEN SYMMETRIC KEY Key_pwd_user DECRYPTION BY
CERTIFICATE InnerCorr;
UPDATE Сотрудник SET Пароль =
EncryptByKey(Key_GUID(''Key_pwd_user''), '''+edtPass.Text+''') where
Код='+DM.tblUser.FieldByName('Код').AsString».
Для извлечения пароля используется следующий запрос:
«OPEN SYMMETRIC KEY Key_pwd_user DECRYPTION BY
CERTIFICATE InnerCorr;
Select CONVERT(varchar, DecryptByKey(Пароль)) as Pass from Сотрудник
where Код='+DM.tblUser.FieldByName('Код').AsString».
Создание ключа и сертификата:
«CREATE MASTER KEY ENCRYPTION BY
PASSWORD= 'SUPERPASS';
CREATE CERTIFICATE InnerCorr
WITH SUBJECT = 'Certificate for pass';
CREATE SYMMETRIC KEY Key_pwd_user
WITH ALGORITHM = AES_128
ENCRYPTION BY CERTIFICATE InnerCorr;
GO».
2.3.3 Структурная схема пакета (дерево вызова программных
модулей)
Система внутренней корреспонденции включает серверную и клиентскую
часть. Клиентская часть – это приложение, которое устанавливается на

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)