提交 cccdbf96 authored 作者: 刘擎阳's avatar 刘擎阳

1.提单不存在小包 同步时的报错处理

上级 9ea59f34
...@@ -454,6 +454,7 @@ class Order_dispose(object): ...@@ -454,6 +454,7 @@ class Order_dispose(object):
delete_big_sql = 'delete from cc_big_package where id in %s' % ids delete_big_sql = 'delete from cc_big_package where id in %s' % ids
pd.read_sql(delete_big_sql, con=db_handle, chunksize=100) pd.read_sql(delete_big_sql, con=db_handle, chunksize=100)
logging.info(f'同步提单:{select_bl_no},删除大包{len(origin_big_ids)}个,删除小包{len(origin_ship_ids)}个,删除小包商品{len(origin_goods_ids)}个,删除小包同步日志{len(origin_log_ids)}条') logging.info(f'同步提单:{select_bl_no},删除大包{len(origin_big_ids)}个,删除小包{len(origin_ship_ids)}个,删除小包商品{len(origin_goods_ids)}个,删除小包同步日志{len(origin_log_ids)}条')
logging.info(f'提单{select_bl_no}同步完成')
# tk日志 # tk日志
origin_tk_log_ids = self.history_ao_tt_log(db_handle, past_date, limit_log_num) origin_tk_log_ids = self.history_ao_tt_log(db_handle, past_date, limit_log_num)
if origin_delete and origin_tk_log_ids: if origin_delete and origin_tk_log_ids:
...@@ -502,12 +503,14 @@ class Order_dispose(object): ...@@ -502,12 +503,14 @@ class Order_dispose(object):
val_df = pd.DataFrame(big_package_arr) val_df = pd.DataFrame(big_package_arr)
val_df.to_sql('cc_history_big_package', con=db_handle, if_exists='append', index=False) val_df.to_sql('cc_history_big_package', con=db_handle, if_exists='append', index=False)
# #
big_ids_str = '(%s)' % str(origin_big_ids)[1:-1]
sql = 'select id,origin_id from cc_history_big_package where origin_id in %s' % big_ids_str
new_order_arr = pd.read_sql(sql, con=db_handle)
result_dict = {} result_dict = {}
for new_order_data in new_order_arr.itertuples(): if origin_big_ids:
result_dict[new_order_data.origin_id] = new_order_data.id big_ids_str = '(%s)' % str(origin_big_ids)[1:-1]
sql = 'select id,origin_id from cc_history_big_package where origin_id in %s' % big_ids_str
new_order_arr = pd.read_sql(sql, con=db_handle)
for new_order_data in new_order_arr.itertuples():
result_dict[new_order_data.origin_id] = new_order_data.id
# logging.info("new_order:%s" % len(new_order)) # logging.info("new_order:%s" % len(new_order))
if result_dict: if result_dict:
# 大包的异常信息处理 # 大包的异常信息处理
...@@ -611,13 +614,14 @@ class Order_dispose(object): ...@@ -611,13 +614,14 @@ class Order_dispose(object):
if history_ship_package_vals_arr: if history_ship_package_vals_arr:
val_df = pd.DataFrame(history_ship_package_vals_arr) val_df = pd.DataFrame(history_ship_package_vals_arr)
val_df.to_sql('cc_history_ship_package', con=db_handle, if_exists='append', index=False) val_df.to_sql('cc_history_ship_package', con=db_handle, if_exists='append', index=False)
ship_ids_str = '(%s)' % str(origin_ship_ids)[1:-1]
sql = 'select id,origin_id from cc_history_ship_package where origin_id in %s' % ship_ids_str
new_order_arr = pd.read_sql(sql, con=db_handle)
result_dict = {} result_dict = {}
for new_order_data in new_order_arr.itertuples(): if origin_ship_ids:
result_dict[new_order_data.origin_id] = new_order_data.id ship_ids_str = '(%s)' % str(origin_ship_ids)[1:-1]
sql = 'select id,origin_id from cc_history_ship_package where origin_id in %s' % ship_ids_str
new_order_arr = pd.read_sql(sql, con=db_handle)
for new_order_data in new_order_arr.itertuples():
result_dict[new_order_data.origin_id] = new_order_data.id
# 小包的异常信息处理 # 小包的异常信息处理
if result_dict: if result_dict:
...@@ -656,27 +660,29 @@ class Order_dispose(object): ...@@ -656,27 +660,29 @@ class Order_dispose(object):
:param package_dict: 原来小包数据 :param package_dict: 原来小包数据
:return: :return:
""" """
ids = '(%s)' % str(origin_ship_ids)[1:-1] origin_log_ids = []
sync_sql = "SELECT id, package_id, sync_time, api_customer, process_code, operate_time, operate_remark, operate_user FROM cc_ship_package_sync_log WHERE package_id in %s;" % ids if origin_ship_ids:
sync_log_result_arr = pd.read_sql(sync_sql, con=db_handle) ids = '(%s)' % str(origin_ship_ids)[1:-1]
sync_log_vals_list = [] sync_sql = "SELECT id, package_id, sync_time, api_customer, process_code, operate_time, operate_remark, operate_user FROM cc_ship_package_sync_log WHERE package_id in %s;" % ids
for sync_log_result in sync_log_result_arr.itertuples(): sync_log_result_arr = pd.read_sql(sync_sql, con=db_handle)
sync_log_data = sync_log_result sync_log_vals_list = []
# 创建历史小包日志数据 for sync_log_result in sync_log_result_arr.itertuples():
sync_log_vals = { sync_log_data = sync_log_result
'package_id': package_dict.get(sync_log_data.package_id, None), # 创建历史小包日志数据
'sync_time': sync_log_data.sync_time, sync_log_vals = {
'api_customer': sync_log_data.api_customer, 'package_id': package_dict.get(sync_log_data.package_id, None),
'process_code': sync_log_data.process_code, 'sync_time': sync_log_data.sync_time,
'operate_time': sync_log_data.operate_time, 'api_customer': sync_log_data.api_customer,
'operate_remark': sync_log_data.operate_remark, 'process_code': sync_log_data.process_code,
'operate_user': sync_log_data.operate_user, 'operate_time': sync_log_data.operate_time,
} 'operate_remark': sync_log_data.operate_remark,
sync_log_vals_list.append(sync_log_vals) 'operate_user': sync_log_data.operate_user,
if sync_log_vals_list: }
val_df = pd.DataFrame(sync_log_vals_list) sync_log_vals_list.append(sync_log_vals)
val_df.to_sql('cc_history_package_sync_log', con=db_handle, if_exists='append', index=False) if sync_log_vals_list:
origin_log_ids = sync_log_result_arr['id'].tolist() val_df = pd.DataFrame(sync_log_vals_list)
val_df.to_sql('cc_history_package_sync_log', con=db_handle, if_exists='append', index=False)
origin_log_ids = sync_log_result_arr['id'].tolist()
return origin_log_ids return origin_log_ids
def batch_history_package_goods(self, db_handle, package_dict, origin_ship_ids, big_dict): def batch_history_package_goods(self, db_handle, package_dict, origin_ship_ids, big_dict):
...@@ -689,58 +695,60 @@ class Order_dispose(object): ...@@ -689,58 +695,60 @@ class Order_dispose(object):
:return: :return:
""" """
# 商品 # 商品
ids = '(%s)' % str(origin_ship_ids)[1:-1] origin_goods_ids = []
package_good_sql = """select id, bl_line_id, big_package_id, bl_id, item_id, sku_id, if origin_ship_ids:
item_name_cn, item_name_en, export_hs_code, import_hs_code, weight, ids = '(%s)' % str(origin_ship_ids)[1:-1]
quantity, quantity_unit, declare_price, freight, cod_amount, vat_rate, package_good_sql = """select id, bl_line_id, big_package_id, bl_id, item_id, sku_id,
item_vat, origin_country, item_type, item_total_price, item_link, item_name_cn, item_name_en, export_hs_code, import_hs_code, weight,
item_tax_status, actual_tax, actual_tax_rate, actual_tax_currency, quantity, quantity_unit, declare_price, freight, cod_amount, vat_rate,
actual_vat, actual_vat_rate, actual_gst, actual_gst_rate, currency_id, item_vat, origin_country, item_type, item_total_price, item_link,
is_cancel from cc_package_good where bl_line_id in %s;""" % ids item_tax_status, actual_tax, actual_tax_rate, actual_tax_currency,
package_good_result_arr = pd.read_sql(package_good_sql, con=db_handle) actual_vat, actual_vat_rate, actual_gst, actual_gst_rate, currency_id,
# origin_goods_ids = [] is_cancel from cc_package_good where bl_line_id in %s;""" % ids
package_good_vals_list = [] package_good_result_arr = pd.read_sql(package_good_sql, con=db_handle)
for package_good_data in package_good_result_arr.itertuples(): # origin_goods_ids = []
# 创建历史小包商品数据 package_good_vals_list = []
package_good_vals = { for package_good_data in package_good_result_arr.itertuples():
'origin_id': package_good_data.id, # 创建历史小包商品数据
'bl_line_id': package_dict.get(package_good_data.bl_line_id, None), package_good_vals = {
'big_package_id': big_dict.get(package_good_data.big_package_id, None), 'origin_id': package_good_data.id,
'bl_id': package_good_data.bl_id, 'bl_line_id': package_dict.get(package_good_data.bl_line_id, None),
'item_id': package_good_data.item_id, 'big_package_id': big_dict.get(package_good_data.big_package_id, None),
'sku_id': package_good_data.sku_id, 'bl_id': package_good_data.bl_id,
'item_name_cn': package_good_data.item_name_cn, 'item_id': package_good_data.item_id,
'item_name_en': package_good_data.item_name_en, 'sku_id': package_good_data.sku_id,
'export_hs_code': package_good_data.export_hs_code, 'item_name_cn': package_good_data.item_name_cn,
'import_hs_code': package_good_data.import_hs_code, 'item_name_en': package_good_data.item_name_en,
'weight': package_good_data.weight, 'export_hs_code': package_good_data.export_hs_code,
'quantity': package_good_data.quantity, 'import_hs_code': package_good_data.import_hs_code,
'quantity_unit': package_good_data.quantity_unit, 'weight': package_good_data.weight,
'declare_price': package_good_data.declare_price, 'quantity': package_good_data.quantity,
'freight': package_good_data.freight, 'quantity_unit': package_good_data.quantity_unit,
'cod_amount': package_good_data.cod_amount, 'declare_price': package_good_data.declare_price,
'vat_rate': package_good_data.vat_rate, 'freight': package_good_data.freight,
'item_vat': package_good_data.item_vat, 'cod_amount': package_good_data.cod_amount,
'origin_country': package_good_data.origin_country, 'vat_rate': package_good_data.vat_rate,
'item_type': package_good_data.item_type, 'item_vat': package_good_data.item_vat,
'item_total_price': package_good_data.item_total_price, 'origin_country': package_good_data.origin_country,
'item_link': package_good_data.item_link, 'item_type': package_good_data.item_type,
'item_tax_status': package_good_data.item_tax_status, 'item_total_price': package_good_data.item_total_price,
'actual_tax': package_good_data.actual_tax, 'item_link': package_good_data.item_link,
'actual_tax_rate': package_good_data.actual_tax_rate, 'item_tax_status': package_good_data.item_tax_status,
'actual_tax_currency': package_good_data.actual_tax_currency, 'actual_tax': package_good_data.actual_tax,
'actual_vat': package_good_data.actual_vat, 'actual_tax_rate': package_good_data.actual_tax_rate,
'actual_vat_rate': package_good_data.actual_vat_rate, 'actual_tax_currency': package_good_data.actual_tax_currency,
'actual_gst': package_good_data.actual_gst, 'actual_vat': package_good_data.actual_vat,
'actual_gst_rate': package_good_data.actual_gst_rate, 'actual_vat_rate': package_good_data.actual_vat_rate,
'currency_id': package_good_data.currency_id, 'actual_gst': package_good_data.actual_gst,
'is_cancel': package_good_data.is_cancel, 'actual_gst_rate': package_good_data.actual_gst_rate,
} 'currency_id': package_good_data.currency_id,
package_good_vals_list.append(package_good_vals) 'is_cancel': package_good_data.is_cancel,
if package_good_vals_list: }
val_df = pd.DataFrame(package_good_vals_list) package_good_vals_list.append(package_good_vals)
val_df.to_sql('cc_history_package_good', con=db_handle, if_exists='append', index=False) if package_good_vals_list:
origin_goods_ids = package_good_result_arr['id'].tolist() val_df = pd.DataFrame(package_good_vals_list)
val_df.to_sql('cc_history_package_good', con=db_handle, if_exists='append', index=False)
origin_goods_ids = package_good_result_arr['id'].tolist()
return origin_goods_ids return origin_goods_ids
try: try:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论