""" 通用后台任务模块 包含简道云表单更新和工作流审批等通用功能 """ 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}")