Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7 сем / 2 / мисприс-2.2_1374_Наволоцкий_Зырянов_Харитонов.docx
Скачиваний:
18
Добавлен:
29.03.2025
Размер:
1.7 Mб
Скачать

2.7.13 Поиск затрат ресурсов на одну операцию для партии изделий

функция: find_resources_for_single_operation_with_batch - рассчет ресурсов для ТО для партии продукции

-- вход:

-- 1. prod_id - id продукции.

-- 2. batch_size - размер партии.

-- выход: ресурсы

-- эффекты:

-- нет

-- требования:

-- 1. передаваемые аргументы должны существовать

def find_resources_for_single_operation_with_batch(prod_id, operation_name, operation_id, batch_size):

try:

# Получение данных об операции

cursor.execute("SELECT * FROM prod_operation WHERE prod_id = ? AND operation_name = ?", (prod_id, operation_name))

operation = cursor.fetchone()

if not operation:

print(f"Operation with ID {operation_id} for product ID {prod_id} not found.")

return None

# Получение ресурсов для указанной операции

cursor.execute("SELECT * FROM input_resources WHERE prod_id = ? AND operation_id = ?", (prod_id, operation_id))

resources = cursor.fetchall()

if not resources:

print(f"No resources found for operation ID {operation_id} and product ID {prod_id}.")

return None

# Расчет итоговых затрат ресурсов

total_resources = {}

for resource in resources:

resource_name = resource[3]

unit_id = resource[4]

quantity = resource[5]

# Умножение на размер партии

total = quantity * batch_size

total_resources[resource_name] = {

"unit_id": unit_id,

"total_quantity": total

}

# Добавление времени на объект

time_per_obj = operation[9] # time_per_obj в структуре prod_operation

time_unit_id = operation[10] # time_unit_id в структуре prod_operation

total_resources["time"] = {

"unit_id": time_unit_id,

"total_time": time_per_obj * batch_size

}

return total_resources

except Exception as e:

print(f"Error in find_resources_for_single_operation_with_batch: {e}")

return None

3. Тестирование функций

3.1 create_obj_operation

3.2 create_input_resource

3.3 del_obj_operation

3.4 create_shd

3.5 create_grc_class

3.6 create_grc

3.7 insert_in_tm

пример вставки в конец процедуры с id 3 (то есть будет после 5ой)

3.8 delete_input_resource

3.9 change_resource_quantity

3.10 find_obj_operation ( или же явная функция для вывода print_obj_operation_by_id)

3.11 find_obj_operation_by_object (находим TM: явная функция для вывода print_sorted_TM)

print_sorted_TM(1)

3.12 find_input_resources_by_obj_operation_with_batch

для партии с n = 1:

для партии с n = 10:

3.13 find_resources_for_single_operation_with_batch

Соседние файлы в папке 2