# Author renyupeng # coding=utf-8 # @Time : 2024/11/27 13:24 # @Site : # @File : KwaixiaodianJstPurchaseItemsRange.py # @Software: PyCharm # @contact: renyupeng@c-top.com.cn # @Tel 1501435553 import threading from utils.mysql_helper import batch_insertPro, batch_insertPro_jst from utils.mysql_utils_pro import MysqlProUtils class KwaixiaodianJstPurchaseItemsRange: def __init__(self): self.conn = MysqlProUtils() def getSkuId(self): sql = """ select sku_id from ruixuan.kwaixiaodian_jst_purchase_items group by sku_id """ results = self.conn.QueryAll(sql=sql) items_per_thread = len(results) threads = [] for i in range(5): start = i * items_per_thread end = start + items_per_thread thread = threading.Thread(target=self.handlerSkuRange, args=(results[start:end],)) threads.append(thread) thread.start() for thread in threads: thread.join() def handlerSkuRange(self, sku_list): for sku_id in sku_list: sku_id = sku_id[0].decode("utf-8") sku_range_delete = """ delete from ruixuan.kwaixiaodian_jst_purchase_items_range where sku_id='{sku_id}' """.format(sku_id=sku_id) self.conn.Operate(sku_range_delete) sku_sql = """select sku_id,qty,price,po_date ,poi_id,po_id from ruixuan.kwaixiaodian_jst_purchase_items where sku_id='{sku_id}' order by po_date """.format(sku_id=sku_id) data_list = self.conn.QueryAll(sql=sku_sql) sumqty = 0 end_qty = 0 sku_item_list = [] for i, data in enumerate(data_list): if i == 0: start_qty = 0 end_qty = data[1] qty = data[1] price = data[2] po_date = data[3].decode("utf-8") sumqty = data[1] poi_id = data[4] po_id = data[5] sku_num = i + 1 else: sku_id = data[0].decode("utf-8") qty = data[1] price = data[2] sumqty += data[1] po_date = data[3].decode("utf-8") poi_id = data[4] po_id = data[5] start_qty = end_qty + 1 end_qty = sumqty sku_num = i + 1 # sku_item = { # "sku_id": sku_id, # "qty": qty, # "price": price, # "po_date": po_date, # "poi_id": poi_id, # "po_id": po_id, # "start_qty": start_qty, # "end_qty": end_pty, # "sku_num": i + 1 # } sku_item=( poi_id, po_id, sku_id, qty, price, po_date, start_qty, end_qty, sku_num ) sku_item_list.append(sku_item) print(sku_item_list) batch_insertPro_jst(sku_item_list, 'kwaixiaodian_jst_purchase_items_range') if __name__ == '__main__': KwaixiaodianJstPurchaseItemsRange().getSkuId()