- •Задание на работу
- •Аннотация
- •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.2 Процедура, создающая запись в таблице “input_resources”
функция: create_input_resource - добавление записи в таблицу input_resources
-- вход:
-- 1. resource_name - имя ресурса
-- 2. unit_id - ЕИ
-- 3. operation_id - id операции
-- 4. prod_id - id объекта
-- 5. quantity - количество
-- выход: 1 успех / 0 ошибка
-- эффекты:
-- 1. создание новой записи в таблице input_resources
-- требования:
-- 1. передаваемые аргументы должны существовать
def create_input_resource(resource_name, unit_id, operation_id, prod_id, quantity):
try:
if not is_exist_by_id_in_table(prod_id, PRODUCT_TABLE):
print(f'объекта с id={prod_id} не существует в таблице {PRODUCT_TABLE}')
return
if not is_exist_by_id_in_table(unit_id, UNIT_TABLE):
print(f'ЕИ с id={unit_id} не существует в таблице {UNIT_TABLE}')
return
if not is_exist_by_id_in_table(operation_id, PROD_OPERATION_TABLE):
print(f'операции с id={operation_id} не существует в таблице {PROD_OPERATION_TABLE}')
return
if not resource_name:
print(f'название ресурса не может быть пустой строкой')
return
check_query = f"SELECT COUNT(*) FROM {INPUT_RESOURCES_TABLE} WHERE resource_name = ? AND operation_id = ? AND quantity = ? AND prod_id = ?"
cursor.execute(check_query, (resource_name, operation_id, quantity, prod_id))
count = cursor.fetchone()[0]
if count > 0:
print(f'ошибка! уже существует ресурс для продукции с id={prod_id} с таким именем - \"{resource_name}\" для операции с id={operation_id} в количестве - {quantity}')
return
cursor.execute(
"INSERT INTO input_resources (operation_id, prod_id, resource_name, unit_id, quantity) VALUES (?, ?, ?, ?, ?)",
(operation_id, prod_id, resource_name, unit_id, quantity,)
)
conn.commit()
print(f'ресурс с названием \"{resource_name}\" успешно создан для операции с id={operation_id} для продукции с id={prod_id}')
return 1
except Exception as e:
conn.rollback()
print(f"Error in create_input_resource: {e}")
return 0
2.7.3 Процедура удаления записи о операции в таблице “prod_operation”
функция: del_obj_operation - добавление записи в таблицу prod_operation
-- вход:
-- 1. operation_id - id операции
-- выход: 1 успех / 0 ошибка
-- эффекты:
-- 1. удаление записи в таблице prod_operation
-- требования:
-- 1. передаваемые аргументы должны существовать
def del_obj_operation(operation_id):
try:
# Проверяем, существует ли операция с указанным ID
cursor.execute(f"SELECT COUNT(*) FROM {PROD_OPERATION_TABLE} WHERE id = ?", (operation_id,))
operation_exists = cursor.fetchone()[0]
if operation_exists == 0:
print(f'Операция с ID {operation_id} не существует')
return
# Удаляем операцию
del_query = f"DELETE FROM {PROD_OPERATION_TABLE} WHERE id = ?"
cursor.execute(del_query, (operation_id,))
conn.commit()
print(f'Операция с id={operation_id} успешно удалена')
except Exception as e:
conn.rollback()
print(f"Error in del_obj_operation: {e}")
