constant_service.py 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. from service.base_service import BaseService
  2. class ConstantService(BaseService):
  3. """一些常量"""
  4. def __init__(self):
  5. self.ACCOUNT_TYPE_COMMON = 0 # 普通用户
  6. self.ACCOUNT_TYPE_WORKFLOW_ADMIN = 1 # 工作流管理员
  7. self.ACCOUNT_TYPE_SUPER_ADMIN = 2 # 超级管理员
  8. self.STATE_TYPE_START = 1 # 开始
  9. self.STATE_TYPE_END = 2 # 结束 distribute_type_id
  10. self.STATE_DISTRIBUTE_TYPE_ACTIVE = 1 # 主动接单
  11. self.STATE_DISTRIBUTE_TYPE_DIRECT = 2 # 直接处理(当前为多人的情况,都可以处理,而不需要先接单)
  12. self.STATE_DISTRIBUTE_TYPE_RANDOM = 3 # 随机分配(V0.2版本支持)
  13. self.STATE_DISTRIBUTE_TYPE_ALL = 4 # 全部处理(V0.2版本支持)
  14. self.TICKET_ACT_STATE_DRAFT = 0 # 草稿中
  15. self.TICKET_ACT_STATE_ONGOING = 1 # 进行中
  16. self.TICKET_ACT_STATE_REJECT = 2 # 被拒绝
  17. self.TICKET_ACT_STATE_RETREAT = 3 # 被撤回
  18. self.TICKET_ACT_STATE_FINISH = 4 # 已完成
  19. self.TICKET_ACT_STATE_CLOSED = 5 # 已关闭
  20. self.PARTICIPANT_TYPE_PERSONAL = 1 # 个人
  21. self.PARTICIPANT_TYPE_MULTI = 2 # 多人
  22. self.PARTICIPANT_TYPE_DEPT = 3 # 部门
  23. self.PARTICIPANT_TYPE_ROLE = 4 # 角色
  24. self.PARTICIPANT_TYPE_VARIABLE = 5 # 变量
  25. self.PARTICIPANT_TYPE_ROBOT = 6 # 机器人,脚本
  26. self.PARTICIPANT_TYPE_FIELD = 7 # 工单字段(用户名类型的)
  27. self.PARTICIPANT_TYPE_PARENT_FIELD = 8 # 父工单字段(用户名类型的)
  28. self.PARTICIPANT_TYPE_HOOK = 10 # hook方式,当工单状态叨叨处理人类型配置为kook的状态时,loonflow将触发一个hook请求,被请求方可以执行有些自动化操作然后回调loonflow,
  29. self.PARTICIPANT_TYPE_FROM_EXTERNAL = 11 # 来自外部,通过触发请求获取当前的处理人
  30. self.TRANSITION_TYPE_COMMON = 1 # 常规流转
  31. self.TRANSITION_TYPE_TIMER = 2 # 定时器流转
  32. self.TRANSITION_ATTRIBUTE_TYPE_ACCEPT = 1 # 同意
  33. self.TRANSITION_ATTRIBUTE_TYPE_REFUSE = 2 # 拒绝
  34. self.TRANSITION_ATTRIBUTE_TYPE_OTHER = 3 # 其他
  35. self.TRANSITION_INTERVENE_TYPE_DELIVER = 1 # 转交操作
  36. self.TRANSITION_INTERVENE_TYPE_ADD_NODE = 2 # 加签操作
  37. self.TRANSITION_INTERVENE_TYPE_ADD_NODE_END = 3 # 加签处理完成
  38. self.TRANSITION_INTERVENE_TYPE_ACCEPT = 4 # 接单操作
  39. self.TRANSITION_INTERVENE_TYPE_COMMENT = 5 # 评论操作
  40. self.TRANSITION_INTERVENE_TYPE_DELETE = 6 # 删除操作
  41. self.TRANSITION_INTERVENE_TYPE_CLOSE = 7 # 强制关闭操作
  42. self.TRANSITION_INTERVENE_TYPE_ALTER_STATE = 8 # 强制修改状态操作
  43. self.TRANSITION_INTERVENE_TYPE_HOOK = 9 # hook操作
  44. self.TRANSITION_INTERVENE_TYPE_RETREAT = 10 # 撤回
  45. self.FIELD_TYPE_STR = 5 # 字符串类型
  46. self.FIELD_TYPE_INT = 10 # 整形类型
  47. self.FIELD_TYPE_FLOAT = 15 # 浮点类型
  48. self.FIELD_TYPE_BOOL = 20 # 布尔类型
  49. self.FIELD_TYPE_DATE = 25 # 日期类型
  50. self.FIELD_TYPE_DATETIME = 30 # 日期时间类型
  51. self.FIELD_TYPE_RADIO = 35 # 单选框
  52. self.FIELD_TYPE_CHECKBOX = 40 # 多选框
  53. self.FIELD_TYPE_SELECT = 45 # 下拉列表
  54. self.FIELD_TYPE_MULTI_SELECT = 50 # 多选下拉列表
  55. self.FIELD_TYPE_TEXT = 55 # 文本域
  56. self.FIELD_TYPE_RICH_TEXT = 58 # 富文本
  57. self.FIELD_TYPE_USERNAME = 60 # 用户名,前端展现时需要调用方系统获取用户列表。loonflow只保存用户名
  58. self.FIELD_TYPE_MULTI_USERNAME = 70 # 多选用户名,多人情况逗号隔开,前端展现时需要调用方系统获取用户列表。loonflow只保存用户名
  59. self.FIELD_TYPE_ATTACHMENT = 80 # 附件,多个附件使用逗号隔开。调用方自己实现上传功能,loonflow只保存文件路径
  60. self.FIELD_ATTRIBUTE_RO = 1 # 只读
  61. self.FIELD_ATTRIBUTE_REQUIRED = 2 # 必填
  62. self.FIELD_ATTRIBUTE_OPTIONAL = 3 # 可选
  63. self.TICKET_PERMISSION_HANDLE = 1 # 处理权限
  64. self.TICKET_PERMISSION_VIEW = 2 # 查看权限
  65. self.TICKET_BASE_FIELD_LIST = ['id', 'sn', 'title', 'state_id', 'parent_ticket_id', 'parent_ticket_state_id',
  66. 'participant_type_id', 'participant', 'workflow_id', 'ticket_type_id',
  67. 'creator', 'is_deleted', 'gmt_created', 'gmt_modified', 'script_run_last_result']
  68. self.FIELD_VALUE_ENUM = {
  69. self.FIELD_TYPE_STR: 'char_value',
  70. self.FIELD_TYPE_INT: 'int_value',
  71. self.FIELD_TYPE_FLOAT: 'float_value',
  72. self.FIELD_TYPE_BOOL: 'bool_value',
  73. self.FIELD_TYPE_DATE: 'date_value',
  74. self.FIELD_TYPE_DATETIME: 'datetime_value',
  75. self.FIELD_TYPE_RADIO: 'radio_value',
  76. self.FIELD_TYPE_CHECKBOX: 'checkbox_value',
  77. self.FIELD_TYPE_SELECT: 'select_value',
  78. self.FIELD_TYPE_MULTI_SELECT: 'multi_select_value',
  79. self.FIELD_TYPE_TEXT: 'text_value',
  80. self.FIELD_TYPE_RICH_TEXT: 'text_value',
  81. self.FIELD_TYPE_USERNAME: 'username_value',
  82. self.FIELD_TYPE_MULTI_USERNAME: 'multi_username_value',
  83. self.FIELD_TYPE_ATTACHMENT: 'char_value'
  84. }
  85. self.NOTICE_TYPE_HOOK = 1 # hook
  86. self.NOTICE_TYPE_WECHAT_WORK = 2 # 企业微信消息
  87. self.NOTICE_TYPE_DINGTALK = 3 # 钉钉消息
  88. constant_service_ins = ConstantService()