| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | 
							- # 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(1):
 
-             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):
 
-         sku_item_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,a.po_date ,poi_id,a.po_id
 
-             from ruixuan.kwaixiaodian_jst_purchase_items a
 
-             left join ruixuan.kwaixiaodian_jst_purchase b
 
-             on a.po_id=b.po_id
 
-  where sku_id='{sku_id}' and b.status in('Finished','Confirmed' )
 
-  and b.po_id is not null 
 
- order by po_date
 
- """.format(sku_id=sku_id)
 
-             data_list = self.conn.QueryAll(sql=sku_sql)
 
-             sumqty = 0
 
-             end_qty = 0
 
-             for i, data in enumerate(data_list):
 
-                 if i == 0:
 
-                     start_qty = 0
 
-                     end_qty = data[1]-1
 
-                     qty = data[1]
 
-                     price = data[2]
 
-                     if data[3] is None:
 
-                         po_date=None
 
-                     else:
 
-                         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]
 
-                     if data[3] is None:
 
-                         po_date = None
 
-                     else:
 
-                         po_date = data[3].decode("utf-8")
 
-                     poi_id = data[4]
 
-                     po_id = data[5]
 
-                     start_qty = end_qty + 1
 
-                     end_qty = sumqty-1
 
-                     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()
 
 
  |