修复因无新增客户导致NGV数据新增异常

This commit is contained in:
2026-01-12 16:27:15 +08:00
parent 923c035fd5
commit 1ef81def0f
9 changed files with 507 additions and 78 deletions
+30 -28
View File
@@ -155,7 +155,7 @@ class YDAPI:
systemToken="XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2", instanceStatus="RUNNING",
max_retries=10, delay=2, createFromTimeGMT=None, createToTimeGMT=None,
modifiedFromTimeGMT=None,
modifiedToTimeGMT=None, searchFieldJson={}):
modifiedToTimeGMT=None, searchFieldJson={},useAlias=False):
"""
函数功能:读取流程表单的所有数据,并加入重试机制。
@@ -196,7 +196,8 @@ class YDAPI:
"modifiedToTimeGMT": modifiedToTimeGMT,
"searchFieldJson": json.dumps(
searchFieldJson
)
),
"useAlias": useAlias,
}
# print(formData)
@@ -460,39 +461,40 @@ class YDAPI:
def get_form_structures(self, token, formUuid, appType="APP_UYZ0KG6L0CCNV80GZ66O",
systemToken="XA966F81JAJOFCVVVKO64E9MIIZV1EWE5SFMKJ2", max_retries=20):
"""
函数功能:获取表单结构 # 宜搭废弃
Args:
token (str): 登录验证token,用于API调用的身份验证。
formUuid (str): 表单的UUID,标识要获取结构的表单。
appType
Returns:
响应值: 如果请求成功,则返回服务器的JSON响应;如果请求失败或无响应,则返回一个表示获取成功信息的字符串。
获取表单结构(宜搭)
注意:该接口必须使用 GET 方法,参数通过 query string 传递
"""
api = f'https://api.dingtalk.com/v1.0/yida/forms/formFields'
headers = {
"Content-Type": "application/json",
"x-acs-dingtalk-access-token": token
}
retries = 0
data_get = {}
payload = {
"formUuid": formUuid,
api_base = 'https://api.dingtalk.com/v1.0/yida/forms/formFields'
# 构造查询参数
params = {
"appType": appType,
"systemToken": systemToken,
"formUuid": formUuid,
"userId": "2268275546837446",
}
headers = {
"x-acs-dingtalk-access-token": token
}
retries = 0
while retries < max_retries:
res = requests.post(api, headers=headers, json=payload)
if res.status_code == 200:
data_get = res.json()
break
else:
retries += 1
time.sleep(0.1)
return data_get
try:
# 使用 GET,并传入 params(自动编码为 query string
res = requests.get(api_base, headers=headers, params=params, timeout=10)
if res.status_code == 200:
return res.json()
else:
print(f"请求失败,状态码: {res.status_code}, 响应: {res.text}")
except Exception as e:
print(f"请求异常: {e}")
retries += 1
time.sleep(0.1)
return {} # 或抛出异常
class NpEncoder(json.JSONEncoder):