|
@@ -0,0 +1,93 @@
|
|
|
+# 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)
|
|
|
+ batch_insertPro_jst(sku_item_list, 'kwaixiaodian_jst_purchase_items_range')
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ KwaixiaodianJstPurchaseItemsRange().getSkuId()
|