简道云fastapi
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
"""
|
||||
通用后台任务模块
|
||||
包含简道云表单更新和工作流审批等通用功能
|
||||
"""
|
||||
import logging
|
||||
import time
|
||||
from typing import Dict, Any
|
||||
from app.api import API
|
||||
|
||||
api_instance = API()
|
||||
logger = logging.getLogger('app')
|
||||
|
||||
|
||||
def update_jiandaoyun(data: Dict[str, Any], results: str):
|
||||
"""
|
||||
更新简道云表单
|
||||
:param data: 包含表单id、应用id、数据id的字典
|
||||
:param results: 执行结果信息
|
||||
:return: 更新结果字典
|
||||
"""
|
||||
# 定义简道云数据配置
|
||||
jiandaoyun_data = {
|
||||
'api_key': data['api_key'],
|
||||
'entry_id': data['entry_id'],
|
||||
'data_id': data['data_id'],
|
||||
"data": {
|
||||
'_widget_1731379774828': {"value": "已执行"}, # f6系统批量操作测试 是否执行成功
|
||||
'_widget_1731381334870': {"value": results} # f6系统批量操作测试 执行明细
|
||||
}
|
||||
}
|
||||
|
||||
time.sleep(1)
|
||||
print(jiandaoyun_data)
|
||||
|
||||
try:
|
||||
response = api_instance.entry_data_update(jiandaoyun_data)
|
||||
logger.info(f"简道云表单更新成功: {response}")
|
||||
return {'msg': True}
|
||||
except Exception as e:
|
||||
logger.error(f"简道云表单更新失败: {e}")
|
||||
return {'msg': False}
|
||||
|
||||
|
||||
def approve_workflow(data: Dict[str, Any]):
|
||||
"""
|
||||
获取简道云当前流程节点并直接提交
|
||||
:param data: 包含表单id、应用id、数据id的字典
|
||||
:return: None
|
||||
"""
|
||||
# 获取简道云当前流程列表
|
||||
json = api_instance.workflow_instance_get(data)
|
||||
|
||||
# 检查返回数据是否有效
|
||||
if not json:
|
||||
logger.error("未获取到工作流实例信息")
|
||||
return
|
||||
|
||||
# 安全地获取任务列表
|
||||
tasks = json.get('tasks', [])
|
||||
if not tasks:
|
||||
logger.error("未找到待处理任务")
|
||||
return
|
||||
|
||||
# 将JSON字符串转换为Python字典
|
||||
username = ''
|
||||
instance_id = ''
|
||||
task_id = ''
|
||||
|
||||
for task in tasks:
|
||||
if task.get('status') == 0:
|
||||
assignee = task.get('assignee', {})
|
||||
username = assignee.get('username', '')
|
||||
instance_id = task.get('instance_id', '')
|
||||
task_id = task.get('task_id', '')
|
||||
|
||||
if username and instance_id and task_id:
|
||||
break
|
||||
|
||||
if not username or not instance_id or not task_id:
|
||||
logger.error("未找到有效的待处理任务信息")
|
||||
return
|
||||
|
||||
task_data = {
|
||||
"username": username,
|
||||
"instance_id": instance_id,
|
||||
"task_id": task_id,
|
||||
}
|
||||
|
||||
try:
|
||||
response = api_instance.workflow_task_approve(task_data)
|
||||
logger.info(f"简道云工作流任务提交成功: {response}")
|
||||
except Exception as e:
|
||||
logger.error(f"简道云工作流任务提交失败: {e}")
|
||||
|
||||
Reference in New Issue
Block a user