""" 审批相关的工具函数 """ def is_department_id(value): """ 判断personincharge字段的值是部门ID还是审批员用户名 统一规则: - 如果是纯数字字符串(如 "1", "2", "123"),表示部门ID - 如果包含非数字字符(如 "张三", "李四"),表示审批员用户名 Args: value: personincharge字段的值(字符串) Returns: bool: True表示是部门ID,False表示是审批员用户名 示例: >>> is_department_id("1") True >>> is_department_id("123") True >>> is_department_id("张三") False >>> is_department_id("dept:1") False """ if not value: return False # 判断是否为纯数字字符串(去除首尾空格) return str(value).strip().isdigit() def format_personincharge(value, is_department=False): """ 格式化personincharge字段的值 统一规则: - 如果是部门ID,确保是纯数字字符串 - 如果是审批员用户名,保持原样 Args: value: 部门ID(整数或字符串)或审批员用户名(字符串) is_department: 是否为部门ID,默认False(审批员用户名) Returns: str: 格式化后的personincharge值 """ if not value: return '' if is_department: # 部门ID:转换为字符串,确保是纯数字 try: return str(int(value)) except (ValueError, TypeError): raise ValueError(f"部门ID必须是数字,当前值: {value}") else: # 审批员用户名:保持原样,但确保是字符串 return str(value).strip()