salescrm/b/kpi/batch_add_daping.dspy
2025-10-27 15:50:44 +08:00

56 lines
2.2 KiB
Plaintext

async def batch_add_daping(ns={}):
db = DBPools()
async with db.sqlorContext('kboss') as sor:
# file_path_detail = 'C:/Users/Admin/Desktop/8.20系统录入用户明细.xlsx'
file_path_detail = file_realpath(ns.get('filepath'))
workbook = openpyxl.load_workbook(filename=file_path_detail, data_only=True)
sheet = workbook.active
# 清空表
sql_truncat = """TRUNCATE TABLE data_visualization;"""
await sor.sqlExe(sql_truncat, {})
for index, row in enumerate(sheet.rows):
if index == 0:
continue
res = [item.value for item in row]
ns_dic = {
'id': uuid(),
'username': res[0],
'business_number': res[1],
'cloud_vendors': res[2],
'business_model': res[3],
'product_type': res[4],
'product_name': res[5],
'primary_category': res[6],
'secondary_category': res[7],
'tertiary_category': res[8],
'user_attribute': res[9],
'settlement_business_type': res[10],
'user_status': res[11],
'accounting_company': res[12],
'actual_amount_received': res[13],
'payment_date': str(res[14]) if res[14] else None,
'entry_date': str(res[15]) if res[15] else None,
'start_date': str(res[16]) if res[16] else None,
'end_date': str(res[17]) if res[17] else None,
'payment_method': res[18],
'cloud_service_discount': res[19],
'purchase_price': res[20],
'saleman': res[21],
'sales_director': res[22],
'regional_manager': res[23],
}
try:
await sor.C('data_visualization', ns_dic)
except Exception as e:
return {
'status': False,
'msg': '第' + str(index + 1) + '行出错,' + res[0] + str(e)
}
return {
'status': True,
'msg': '批量添加操作成功'
}
ret = await batch_add_daping(params_kw)
return ret