def __init__(self, test_item_table=None): if test_item_table: self.items = pytrie.StringTrie(**test_item_table) else: all_items_list = db.get_all_items() all_items_dict = {} for item_id, item_name in all_items_list: lowercase_name = item_name.lower() all_items_dict[lowercase_name] = item_id self.items = pytrie.StringTrie(**all_items_dict)
def load_items(): # Получаем нераспределенные товары и сортируем их по убыванию веса all_items = db.get_all_items() items = [i for i in all_items if i.stowage_id is None] items_sorted_weight = sorted(items, key=operator.attrgetter('weight'), reverse=True) # Перебираем товары и определяем набор подходящих ячеек для каждого товара for i in items_sorted_weight: print("Загрузка нераспределенных товаров") # Получаем пустые ячейки и сортируем их по возрастанию объема all_stowages = db.get_all_stowages() stowages = [s for s in all_stowages if s.empty is True] stowages_sorted = sorted(stowages, key=operator.attrgetter('volume')) # Перебираем все ячейки stowages_suitable = [] for s in stowages_sorted: # Если ячейка всё еще пуста и подходит по размерам, то добавляем её в дополнительный массив if s.empty: if ((i.size_x <= s.size_x) and (i.size_y <= s.size_y) and (i.size_z <= s.size_z)) \ or ((i.size_x <= s.size_y) and (i.size_y <= s.size_x) and (i.size_z <= s.size_z)): # or ((i.size_x <= s.size_x) and (i.size_y <= s.size_z) and (i.size_z <= s.size_y)): stowages_suitable.append(s) # Если подходящих ячеек не нашлось, то размещаем на удаленный склад if len(stowages_suitable) == 0: i.stowage_id = 999999 break # TODO: Большие тяжелые товары уходят на удаленный склад и прерывают поиск места для остальных. ИСправить # Сохраняем объем самой маленькой подходящей ячейки smallest_volume = stowages_suitable[0].volume # Отбираем ячейки этого объема и сортируем этот набор по возрастанию высоты stowages_lowest = sorted( (s for s in stowages_suitable if s.volume <= smallest_volume), key=operator.attrgetter('level')) # Размещаем тем самым тяжелый товар прежде всего # Сообщаем манипулятору id товара и json-координаты ячейки print("Загрузка товара с id", i.id, "в ячейку с JSON =", stowages_lowest[0].json) res = manipulator.load(i.id, stowages_lowest[0].json) # Если манипулятор сообщил о том, что всё хорошо, фиксируем это у себя в БД if res['status'] == "ok": print("Загрузка прошла успешно") # Отмечаем в товаре ID-места, где он лежит, и в ячейке - что она уже не пуста i.stowage_id = stowages_lowest[0].id stowages_lowest[0].empty = False # Фиксируем результат размещением изменений в БД db.load_item_in_stowage(i, stowages_lowest[0]) else: print("Загрузка прошла с ошибками!!!!")
def main(): print("Загружаю главную страницу") form1 = InvoiceForm() if form1.validate_on_submit(): print("Обнаружены данные из формы") controller.add_item(form1) items_data = db.get_all_items() items = [(item.id, item.name, item.size_x, item.size_y, item.size_z, item.weight, item.stowage_id) for item in items_data] stowages_data = db.get_all_stowages() stowages = [(stowage.id, stowage.row, stowage.level, stowage.size_x, stowage.size_y, stowage.size_z, stowage.json, stowage.empty) for stowage in stowages_data] print("Загрузка главной страницы") return render_template('main.html', items=items, stowages=stowages, form1=form1)
def queue_processor(): logger.info("Starting queue processor in 10 seconds") try: time.sleep(10) logger.info("Queue processor started") db_scan_requests = db.get_all_items() items = 0 for db_item in db_scan_requests: thread.start(plex.scan, args=[conf.configs, scan_lock, db_item['scan_path'], db_item['scan_for'], db_item['scan_section'], db_item['scan_type'], resleep_paths]) items += 1 time.sleep(2) logger.info("Restored %d scan requests from database", items) except Exception: logger.exception("Exception while processing scan requests from database: ") return
["All", "Reading", "Completed", "Future Reads"]) def select_subCategory(): sCategory = db.get_subCategory() sub_cat = [] for sc in sCategory: sub_cat.append(sc[0]) subCategory = st.selectbox("Category", sub_cat) return subCategory if selected == "Completed": tag = "C" subCat = select_subCategory() completed = db.get_completed() to_show = db.book_with_subCategory(subCat, tag) st.write(to_show) elif selected == "Future Reads": tag = "F" want_to_read = db.get_want_to_read() st.write(want_to_read) elif selected == "Reading": completed = db.get_reading() tag = "R" st.write(completed) all = db.get_all_items(r'D:\sqlite\db\books.db') st.write(all)
def get_items(): return jsonify(db.get_all_items())