- •Задание на работу
- •Аннотация
- •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.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
