
- •Задание на работу
- •Аннотация
- •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.8 Процедура удаления записи в таблице “input_resources”
функция: delete_input_resource - добавление записи в таблицу input_resources
-- вход:
-- 1. unit_id - id ЕИ
-- 2. operation_id - id операции
-- 3. prod_id - id объекта
-- выход: 1 успех / 0 ошибка
-- эффекты:
-- 1. удаление записи в таблице input_resources
-- требования:
-- 1. передаваемые аргументы должны существовать
def delete_input_resource(unit_id, operation_id, prod_id):
try:
cursor.execute("""
SELECT COUNT(*) FROM input_resources
WHERE operation_id = ? AND prod_id = ? AND unit_id = ?
""", (operation_id, prod_id, unit_id))
if cursor.fetchone()[0] == 0:
print(f"No matching resource found for operation_id={operation_id}, prod_id={prod_id}, unit_id={unit_id}")
return
cursor.execute("""
SELECT resource_name FROM input_resources
WHERE operation_id = ? AND prod_id = ? AND unit_id = ?
""", (operation_id, prod_id, unit_id))
resource_name = cursor.fetchone()[0]
cursor.execute("""
DELETE FROM input_resources
WHERE operation_id = ? AND prod_id = ? AND unit_id = ?
""", (operation_id, prod_id, unit_id))
conn.commit()
print(f"ресурс c названием \"{resource_name}\" operation_id={operation_id}, prod_id={prod_id}, unit_id={unit_id} успешно удален")
except Exception as e:
conn.rollback()
print(f"Error in delete_input_resource: {e}")
2.7.9 Процедура изменения количества ресурса в таблице “inputs_resources”
функция: change_resource_quantity - изменение количества ресурса в input_resources
-- вход:
-- 1. unit_id - ЕИ
-- 2. operation_id - id операции
-- 3. prod_id - id объекта
-- 4. quantity - количество
-- выход: 1 успех / 0 ошибка
-- эффекты:
-- 1. изменение ресурса в таблице input_resources
-- требования:
-- 1. передаваемые аргументы должны существовать
def change_resource_quantity(unit_id, operation_id, prod_id, quantity):
try:
cursor.execute("""
SELECT COUNT(*) FROM input_resources
WHERE operation_id = ? AND prod_id = ? AND unit_id = ?
""", (operation_id, prod_id, unit_id))
if cursor.fetchone()[0] == 0:
print(f"No matching resource found for operation_id={operation_id}, prod_id={prod_id}, unit_id={unit_id}")
return
cursor.execute("""
SELECT resource_name FROM input_resources
WHERE operation_id = ? AND prod_id = ? AND unit_id = ?
""", (operation_id, prod_id, unit_id))
resource_name = cursor.fetchone()[0]
cursor.execute("""
UPDATE input_resources SET quantity = ?
WHERE operation_id = ? AND prod_id = ? AND unit_id = ?
""", (quantity, operation_id, prod_id, unit_id))
conn.commit()
print(f"поле \"quantity\" у ресурса с названием \"{resource_name}\" operation_id={operation_id}, prod_id={prod_id}, unit_id={unit_id} успешно обновлено в = {quantity}")
except Exception as e:
conn.rollback()
print(f"Error in change_resource_quantity: {e}")