From 5879eb78428644b3f698747e4424164b2ca5fffa Mon Sep 17 00:00:00 2001 From: z66 <1415243231@qq.com> Date: Mon, 25 Aug 2025 14:26:54 +0800 Subject: [PATCH] =?UTF-8?q?NGV=E6=95=B0=E6=8D=AE=E6=BA=90=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api.py | 49 ++++++++++++++++++++++++++++++-- back_ground_module/logs/task.log | 14 +++++++++ config.py | 6 ++-- 3 files changed, 64 insertions(+), 5 deletions(-) diff --git a/api.py b/api.py index 8d5d17f..0e1dbfc 100644 --- a/api.py +++ b/api.py @@ -221,7 +221,7 @@ class API: jiandaoyun_data['data'] = {"_widget_1731650067055":{"value":f'{username}{password}'}, "_widget_1731650067056":{"value": f"{group}"}} """ - + # noinspection DuplicatedCode payload = json.dumps({ "app_id": data['api_key'], # 应用ID "entry_id": data['entry_id'], # 表单ID @@ -231,6 +231,7 @@ class API: "transaction_id": data.get('transaction_id', "") } ) + retries = 0 while retries <= max_retries: try: @@ -554,6 +555,50 @@ class API: res = requests.post(url=url, data=payload, headers=headers, timeout=10) return res.json() + @staticmethod + def workflow_task_hand_over(data: dict, max_retries: int = 10) -> dict | None: + """ + 流程待办转交 + :param max_retries: 最大重试次数 + :param data:应包含username、instance_id(data_id)、task_id等信息 + :return:返回简道云流程待办转交的结果 + """ + url = 'https://api.jiandaoyun.com/api/v1/workflow/task/transfer' + + headers = { + 'Authorization': Config.JIANDAOYUN_API_TOKEN, # 曹伟应用api测试 appKey + 'Content-Type': 'application/json' + } + + payload = json.dumps({ + "username": data["username"], # 当前节点的负责人 + "instance_id": data["instance_id"], + "task_id": data['task_id'], + "transfer_username": data['transfer_username'], # 转交人 + "comment": "转交" + } + ) + + retries = 0 + while retries <= max_retries: + try: + res: requests.Response = requests.post(url=url, data=payload, headers=headers, timeout=10) + res.raise_for_status() # 检查HTTP响应状态码,如果不等于200会抛出异常 + if res.status_code == 200: + return res.json() + else: + logger.warning(f"请求异常, 将重新请求") + retries += 1 + time.sleep(3) # 在重试之间稍作停顿 + except requests.exceptions.RequestException as e: + logger.warning(f"请求异常: {e}, 将重新请求") + retries += 1 + time.sleep(3) # 在重试之间稍作停顿 + if retries > max_retries: + error_task_logger.error( + f"任务 {data['data_list']} 连续{max_retries}次请求失败,放弃此次请求。") + return None + @staticmethod def get_upload_token(data: dict, max_retries: int = 10) -> dict[str, Any] | None: """ @@ -573,8 +618,8 @@ class API: "entry_id": data['entry_id'], # 表单ID "transaction_id": data['transaction_id'], # 事务ID }) - retries = 0 + retries = 0 while retries <= max_retries: try: res: requests.Response = requests.post(url=url, data=payload, headers=headers, timeout=10) diff --git a/back_ground_module/logs/task.log b/back_ground_module/logs/task.log index 9076720..56f3bcb 100644 --- a/back_ground_module/logs/task.log +++ b/back_ground_module/logs/task.log @@ -13825,3 +13825,17 @@ 2025-08-21 09:54:59,971 - update_denominator_reporting_adjustment_to_bi.py - task_logger - INFO - 成功写入 398 条记录到 f6_denominator_adjustment 表中。 2025-08-21 09:54:59,972 - update_denominator_reporting_adjustment_to_bi.py - task_logger - INFO - ✅ 写入BI数据库成功 2025-08-21 09:55:00,102 - common_module.py - task_logger - INFO - 任务状态发送成功: {'data': {'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'deleter': None, 'createTime': '2025-08-21T01:55:01.452Z', 'updateTime': '2025-08-21T01:55:01.452Z', 'deleteTime': None, '_widget_1744873387500': '2025-08-21T00:00:00.000Z', '_widget_1743644977694': '分母报备调整', '_widget_1744873387501': '2025-08-21T01:54:50.000Z', '_widget_1744873387502': '2025-08-21T01:54:59.000Z', '_widget_1744873387504': '9', '_id': '68a67c759597e45c1b2c0617', 'appId': '6694d3c4fcb69ca9a111a6c4', 'entryId': '67ede908eb9c22261016466e'}} +2025-08-25 14:23:45,965 - api.py - task_logger - INFO - 已获取 100 条数据 +2025-08-25 14:23:46,200 - api.py - task_logger - INFO - 已获取 142 条数据 +2025-08-25 14:23:49,091 - update_NGV_data.py - task_logger - INFO - 数据加载完成 +2025-08-25 14:24:14,323 - update_NGV_data.py - task_logger - INFO - 时间转换完成 +2025-08-25 14:24:14,325 - update_NGV_data.py - task_logger - INFO - 人员转换完成 +2025-08-25 14:24:14,506 - common_module.py - task_logger - INFO - 任务状态发送成功: {'data': {'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'deleter': None, 'createTime': '2025-08-25T06:24:12.963Z', 'updateTime': '2025-08-25T06:24:12.963Z', 'deleteTime': None, '_widget_1744873387500': '2025-08-25T00:00:00.000Z', '_widget_1743644977694': 'NGV新增数据', '_widget_1744873387501': '2025-08-25T06:23:45.000Z', '_widget_1744873387502': '2025-08-25T06:24:14.000Z', '_widget_1744873387504': '29', '_id': '68ac018c5020c0d08295da3b', 'appId': '6694d3c4fcb69ca9a111a6c4', 'entryId': '67ede908eb9c22261016466e'}} +2025-08-25 14:24:14,506 - update_NGV_data.py - task_logger - INFO - 任务完成。 +2025-08-25 14:24:49,747 - api.py - task_logger - INFO - 已获取 100 条数据 +2025-08-25 14:24:49,854 - api.py - task_logger - INFO - 已获取 142 条数据 +2025-08-25 14:24:49,963 - update_NGV_data.py - task_logger - INFO - 数据加载完成 +2025-08-25 14:25:14,434 - update_NGV_data.py - task_logger - INFO - 时间转换完成 +2025-08-25 14:25:14,436 - update_NGV_data.py - task_logger - INFO - 人员转换完成 +2025-08-25 14:25:14,603 - common_module.py - task_logger - INFO - 任务状态发送成功: {'data': {'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'deleter': None, 'createTime': '2025-08-25T06:25:13.048Z', 'updateTime': '2025-08-25T06:25:13.048Z', 'deleteTime': None, '_widget_1744873387500': '2025-08-25T00:00:00.000Z', '_widget_1743644977694': 'NGV新增数据', '_widget_1744873387501': '2025-08-25T06:24:49.000Z', '_widget_1744873387502': '2025-08-25T06:25:14.000Z', '_widget_1744873387504': '25', '_id': '68ac01c9855945983fea5173', 'appId': '6694d3c4fcb69ca9a111a6c4', 'entryId': '67ede908eb9c22261016466e'}} +2025-08-25 14:25:14,603 - update_NGV_data.py - task_logger - INFO - 任务完成。 diff --git a/config.py b/config.py index 1166f9b..991dff2 100644 --- a/config.py +++ b/config.py @@ -7,9 +7,9 @@ class Config: CONN_INFO = { "database": "f6_bi", - "user": "BASIC$ro_caowei", - "password": "!ro_caowei123", - "host": "hgprecn-cn-nif1vnv0y002-cn-shanghai.hologres.aliyuncs.com", + "user": "LTAI5tMJsijFA9BS1R6uBpUT", + "password": "PajEQMIRWNRcipd8mYvlud2KHWJr6N", + "host": "hgprecn-cn-to34by1d0001-cn-shanghai.hologres.aliyuncs.com", "port": "80" } # SaaS-NGV 数据库链接配置-postgresql