客户资料更新取消新建

This commit is contained in:
z66
2025-11-11 16:59:51 +08:00
parent 8a2c65d76e
commit b1d4b34d40
5 changed files with 18 additions and 14731 deletions
+14
View File
@@ -3,6 +3,13 @@
<component name="CsvFileAttributes">
<option name="attributeMap">
<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">
<value>
<Attribute>
@@ -17,6 +24,13 @@
</Attribute>
</value>
</entry>
<entry key="\back_ground_module\create_data.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
<entry key="\db\task_queue.csv">
<value>
<Attribute>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -69,7 +69,7 @@ class UpdateNGVData:
filtered_df = new_df[new_df['org_type'] == '一般']
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",
@@ -1,65 +1,5 @@
# -*- 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 datetime
import os
@@ -106,7 +46,7 @@ USE_CONCURRENT_UPDATE = True # True=并发更新(快),False=串行更新
# 并发线程数(同时执行的更新任务数)
# 建议值:5-20,过大可能被API限流,过小影响速度
# 如果API限流严重,可以降低到3-5
CONCURRENT_WORKERS = 8
CONCURRENT_WORKERS = 6
# 【4. 批量创建配置】
# 是否使用批量创建(批量创建速度快)
@@ -659,10 +599,6 @@ class UpdateAllNGVDataDaily:
'row_data': row # 保存原始数据用于输出
})
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_df = pd.DataFrame(create_data_list)
# create_df.to_csv(f"create_data.csv", index=False)
create_df = pd.DataFrame(create_data_list)
create_df.to_csv(f"create_data.csv", index=False)
# if len(create_data_list) > 0:
# if USE_BATCH_CREATE:
# create_count = self._batch_create(create_data_list)