
- •Задание на работу
- •Аннотация
- •Summary
- •Описание выполненной работы
- •2.1 Маршрутная технология и маршрутные карты
- •2.2 Разработка функциональных требований к подсистеме
- •2.3 Разработка модели классов этапа анализа
- •2.4 Разработка модели классов этапа проектирования
- •2.5 Разработка модели хранения
- •2.6 Создание базы данных
- •2.7 Разработка основных процедур
- •2.7.1 Процедура, создающая запись в таблице “prod_operation”:
- •2.7.2 Процедура, создающая запись в таблице “input_resources”
- •2.7.3 Процедура удаления записи о операции в таблице “prod_operation”
- •2.7.4 Процедура, создающая запись о схд в таблице “terminal_classifier”
- •2.7.5 Процедура, создающая грц класс в таблице terminal_classifier
- •2.7.6 Процедура создания экземпляра грц
- •2.7.7 Процедура, меняющая порядок операции, позволяя вставлять ее в начало, середину, конец тм
- •2.7.8 Процедура удаления записи в таблице “input_resources”
- •2.7.9 Процедура изменения количества ресурса в таблице “inputs_resources”
- •2.7.10 Процедура нахождения информации об операции по id
- •2.7.11 Процедура поиска tm, сортируя их по приоритету (порядок формируется приоритетом операции при ее создании / вставке в началу/середину/конец)
- •2.7.12 Поиск затрат ресурсов на тм на партию объектов
- •2.7.13 Поиск затрат ресурсов на одну операцию для партии изделий
2.7.4 Процедура, создающая запись о схд в таблице “terminal_classifier”
функция: create_shd - добавление записи в таблицу terminal_classifier
-- вход:
-- 1. new_shd_name - имя СХД
-- 2. new_shd_name_short - имя СХД короткое
-- 3. shd_parent_name - имя родителя СХД (необязательный аргумент)
-- выход: 1 успех / 0 ошибка
-- эффекты:
-- 1. создание новой записи в таблице terminal_classifier
-- требования:
-- 1. передаваемые аргументы должны существовать
def create_shd(new_shd_name, new_shd_name_short, shd_parent_name=None):
try:
if shd_parent_name != None:
if not is_category_exists(shd_parent_name):
print(f'ошибка! СХД родитель не существует в таблице {TERMINAL_CLASSIFIER_TABLE}')
return
try:
add_subcategory(shd_parent_name, new_shd_name, new_shd_name_short)
print(f'СХД с именем \"{new_shd_name}\" создана как дочерняя по отношению к \"{shd_parent_name}\"')
return
except Exception as e:
conn.rollback()
print(f"Error in create_shd категории: {e}")
try:
add_category(new_shd_name, new_shd_name_short, None, None)
print(f'СХД с именем \"{new_shd_name}\" создана как родительская')
return
except Exception as e:
conn.rollback()
print(f"Error in create_shd подкатегории: {e}")
except Exception as e:
conn.rollback()
print(f"Error in create_shd: {e}")
2.7.5 Процедура, создающая грц класс в таблице terminal_classifier
функция: create_grc_class - добавление записи в таблицу terminal_classifier
-- вход:
-- 1. new_grc_name - имя ГРЦ
-- 2. new_grc_name_short - имя ГРЦ короткое
-- 3. grc_parent_name - имя родителя ГРЦ (необязательный аргумент)
-- выход: 1 успех / 0 ошибка
-- эффекты:
-- 1. создание новой записи в таблице terminal_classifier
-- требования:
-- 1. передаваемые аргументы должны существовать
def create_grc_class(new_grc_name, new_grc_name_short, grc_parent_name=None):
try:
if grc_parent_name != None:
if not is_category_exists(grc_parent_name):
print(f'ошибка! ГРЦ родитель не существует в таблице {TERMINAL_CLASSIFIER_TABLE}')
return
try:
add_subcategory(grc_parent_name, new_grc_name, new_grc_name_short)
print(f'ГРЦ с именем \"{new_grc_name}\" создано как дочернее по отношению к \"{grc_parent_name}\"')
return
except Exception as e:
conn.rollback()
print(f"Error in create_grc_class категории: {e}")
try:
add_category(new_grc_name, new_grc_name_short, None, None)
print(f'ГРЦ с именем \"{new_grc_name}\" создано как родительское')
return
except Exception as e:
conn.rollback()
print(f"Error in create_grc_class подкатегории: {e}")
except Exception as e:
conn.rollback()
print(f"Error in create_grc_class: {e}")
2.7.6 Процедура создания экземпляра грц
функция: create_grc - добавление экземпляра СХД записи в таблицу product
-- вход:
-- 1. category_name - имя категории
-- 2. shd_id - СХД id
-- 3. grc_name - имя ГРЦ
-- 4. grc_name_short - имя ГРЦ короткое
-- выход: 1 успех / 0 ошибка
-- эффекты:
-- 1. создание новой записи экземпляра СХД в таблице product
-- требования:
-- 1. передаваемые аргументы должны существовать
def create_grc(category_name, shd_id, grc_name, grc_name_short):
try:
if not is_exist_by_id_in_table(shd_id, TERMINAL_CLASSIFIER_TABLE):
print(f'ошибка! такого класса СХД не существует в таблице {TERMINAL_CLASSIFIER_TABLE}')
return
if is_product_exist(grc_name):
print(f'ошибка! название ГРЦ уже занято в таблице {PRODUCT_TABLE}')
return
cursor.execute(f"SELECT id FROM {TERMINAL_CLASSIFIER_TABLE} WHERE terminal_classifier_name = ?", (category_name,))
id_category = cursor.fetchone()[0]
if not is_exist_by_id_in_table(id_category, TERMINAL_CLASSIFIER_TABLE):
print(f'ошибка! такой категории для ГРЦ не существует в таблице {TERMINAL_CLASSIFIER_TABLE}')
return
cursor.execute("INSERT INTO product (id_category, product_name, product_name_short, place) VALUES (?, ?, ?, ?)",
(id_category, grc_name, grc_name_short, shd_id))
conn.commit()
print("ГРЦ успешно добавлено.")
return
except Exception as _ex:
print(f"Произошла ошибка при добавлении ГРЦ: {_ex}")