客户资料更新取消新建
This commit is contained in:
Generated
+14
@@ -3,6 +3,13 @@
|
|||||||
<component name="CsvFileAttributes">
|
<component name="CsvFileAttributes">
|
||||||
<option name="attributeMap">
|
<option name="attributeMap">
|
||||||
<map>
|
<map>
|
||||||
|
<entry key="\back_ground_module\1762841002.961643_ngv_data_yesterday.csv">
|
||||||
|
<value>
|
||||||
|
<Attribute>
|
||||||
|
<option name="separator" value="," />
|
||||||
|
</Attribute>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
<entry key="\back_ground_module\CRM.csv">
|
<entry key="\back_ground_module\CRM.csv">
|
||||||
<value>
|
<value>
|
||||||
<Attribute>
|
<Attribute>
|
||||||
@@ -17,6 +24,13 @@
|
|||||||
</Attribute>
|
</Attribute>
|
||||||
</value>
|
</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry key="\back_ground_module\create_data.csv">
|
||||||
|
<value>
|
||||||
|
<Attribute>
|
||||||
|
<option name="separator" value="," />
|
||||||
|
</Attribute>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
<entry key="\db\task_queue.csv">
|
<entry key="\db\task_queue.csv">
|
||||||
<value>
|
<value>
|
||||||
<Attribute>
|
<Attribute>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -69,7 +69,7 @@ class UpdateNGVData:
|
|||||||
filtered_df = new_df[new_df['org_type'] == '一般']
|
filtered_df = new_df[new_df['org_type'] == '一般']
|
||||||
filtered_df = filtered_df.copy()
|
filtered_df = filtered_df.copy()
|
||||||
# 默认未删除
|
# 默认未删除
|
||||||
filtered_df['源ngv是否已删除'] = '未删除'
|
filtered_df['源NGV是否已删除'] = '未删除'
|
||||||
|
|
||||||
# 日期字段转换为日期格式
|
# 日期字段转换为日期格式
|
||||||
time_columns = ['date_fmt', 'saas_create_time', 'expiry_time', 'install_create_time', "last_end_date",
|
time_columns = ['date_fmt', 'saas_create_time', 'expiry_time', 'install_create_time', "last_end_date",
|
||||||
|
|||||||
@@ -1,65 +1,5 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
"""
|
|
||||||
NGV数据每日更新 - 优化版本
|
|
||||||
优化点:
|
|
||||||
1. 保留批量标记未删除再标记已删除的逻辑
|
|
||||||
2. 重构代码结构,提高可读性和可维护性
|
|
||||||
3. 解决无id时创建记录没有门店编码的问题
|
|
||||||
4. 优化人员字段匹配效率(使用字典映射)
|
|
||||||
5. 移除无效的并发代码
|
|
||||||
6. 支持本地缓存功能,方便开发调试
|
|
||||||
|
|
||||||
【本地缓存使用说明】
|
|
||||||
调试时可以使用本地缓存功能,避免每次都重新获取数据:
|
|
||||||
|
|
||||||
1. 首次运行(生成缓存):
|
|
||||||
- 保持 USE_LOCAL_CACHE = False
|
|
||||||
- 运行脚本,会自动将数据保存到 output/cache/ 目录
|
|
||||||
|
|
||||||
2. 调试批量修改(使用缓存):
|
|
||||||
- 修改代码:USE_LOCAL_CACHE = True
|
|
||||||
- 重新运行,将从本地缓存读取数据,跳过API调用
|
|
||||||
- 可以快速测试批量修改逻辑
|
|
||||||
|
|
||||||
3. 正式运行(禁用缓存):
|
|
||||||
- 修改代码:USE_LOCAL_CACHE = False
|
|
||||||
- 获取最新数据并执行更新
|
|
||||||
|
|
||||||
缓存文件位置:output/cache/
|
|
||||||
- jdy_ngv_data.csv: 简道云NGV数据
|
|
||||||
- staff_data.csv: 员工数据
|
|
||||||
- ngv_data_today.csv: NGV昨天数据
|
|
||||||
- ngv_data_yesterday.csv: NGV前天数据
|
|
||||||
|
|
||||||
【删除状态重置说明】
|
|
||||||
首次运行时需要重置所有数据的删除状态:
|
|
||||||
|
|
||||||
1. 首次运行:
|
|
||||||
- 设置 RESET_ALL_DELETED_STATUS = True
|
|
||||||
- 运行脚本,会批量标记所有简道云数据为"未删除"
|
|
||||||
- 然后批量标记不存在的门店为"已删除"
|
|
||||||
|
|
||||||
2. 日常运行:
|
|
||||||
- 设置 RESET_ALL_DELETED_STATUS = False
|
|
||||||
- 只处理新增的已删除门店(批量标记)
|
|
||||||
|
|
||||||
【并发更新说明】
|
|
||||||
通过多线程并发提升更新速度:
|
|
||||||
|
|
||||||
1. 并发模式(推荐,速度快):
|
|
||||||
- 设置 USE_CONCURRENT_UPDATE = True
|
|
||||||
- 设置 CONCURRENT_WORKERS = 10(并发线程数)
|
|
||||||
- 预期速度:10条/秒或更快(取决于网络和API性能)
|
|
||||||
|
|
||||||
2. 串行模式(调试用):
|
|
||||||
- 设置 USE_CONCURRENT_UPDATE = False
|
|
||||||
- 逐条更新,速度慢(约3条/秒)
|
|
||||||
- 便于定位问题
|
|
||||||
|
|
||||||
3. 速度调优:
|
|
||||||
- 提高 CONCURRENT_WORKERS 可以提速(建议5-20)
|
|
||||||
- 过高可能导致API限流,需要根据实际情况调整
|
|
||||||
"""
|
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
import datetime
|
import datetime
|
||||||
import os
|
import os
|
||||||
@@ -106,7 +46,7 @@ USE_CONCURRENT_UPDATE = True # True=并发更新(快),False=串行更新
|
|||||||
# 并发线程数(同时执行的更新任务数)
|
# 并发线程数(同时执行的更新任务数)
|
||||||
# 建议值:5-20,过大可能被API限流,过小影响速度
|
# 建议值:5-20,过大可能被API限流,过小影响速度
|
||||||
# 如果API限流严重,可以降低到3-5
|
# 如果API限流严重,可以降低到3-5
|
||||||
CONCURRENT_WORKERS = 8
|
CONCURRENT_WORKERS = 6
|
||||||
|
|
||||||
# 【4. 批量创建配置】
|
# 【4. 批量创建配置】
|
||||||
# 是否使用批量创建(批量创建速度快)
|
# 是否使用批量创建(批量创建速度快)
|
||||||
@@ -659,10 +599,6 @@ class UpdateAllNGVDataDaily:
|
|||||||
'row_data': row # 保存原始数据用于输出
|
'row_data': row # 保存原始数据用于输出
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
# 创建操作:必须包含门店编码字段
|
|
||||||
if self.ORG_CODE_WIDGET_ID not in data_dict:
|
|
||||||
org_code = idx
|
|
||||||
data_dict[self.ORG_CODE_WIDGET_ID] = {"value": org_code}
|
|
||||||
|
|
||||||
# 新增:仅创建内容非全空的记录
|
# 新增:仅创建内容非全空的记录
|
||||||
# 检查除了门店编码外,其他字段是否全为空
|
# 检查除了门店编码外,其他字段是否全为空
|
||||||
@@ -697,8 +633,8 @@ class UpdateAllNGVDataDaily:
|
|||||||
# 执行创建
|
# 执行创建
|
||||||
create_count = 0
|
create_count = 0
|
||||||
|
|
||||||
# create_df = pd.DataFrame(create_data_list)
|
create_df = pd.DataFrame(create_data_list)
|
||||||
# create_df.to_csv(f"create_data.csv", index=False)
|
create_df.to_csv(f"create_data.csv", index=False)
|
||||||
# if len(create_data_list) > 0:
|
# if len(create_data_list) > 0:
|
||||||
# if USE_BATCH_CREATE:
|
# if USE_BATCH_CREATE:
|
||||||
# create_count = self._batch_create(create_data_list)
|
# create_count = self._batch_create(create_data_list)
|
||||||
|
|||||||
Reference in New Issue
Block a user