56 lines
2.2 KiB
Plaintext
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 |