63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
"""
|
||
审批相关的工具函数
|
||
"""
|
||
|
||
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()
|
||
|