entity.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. # -*- coding: utf-8 -*-
  2. # @Author : YY
  3. from datetime import datetime
  4. from typing import Optional
  5. from pydantic import BeforeValidator, Field
  6. from typing_extensions import Annotated
  7. from ruoyi_common.base.model import BaseEntity, AuditEntity
  8. from ruoyi_common.base.transformer import int_to_str, str_to_int, to_datetime
  9. from ruoyi_common.base.schema_vo import VoAccess
  10. from ruoyi_common.utils.base import DateUtil
  11. from ruoyi_apscheduler.constant import DATETIME_FORMAT
  12. class SysJob(AuditEntity):
  13. job_id: Annotated[
  14. Optional[int],
  15. BeforeValidator(str_to_int),
  16. Field(default=None)
  17. ]
  18. job_name: Annotated[
  19. Optional[str],
  20. Field(default=None,vo=VoAccess(query=True))
  21. ]
  22. job_group: Annotated[
  23. Optional[str],
  24. Field(default=None,vo=VoAccess(query=True))
  25. ]
  26. invoke_target: Annotated[
  27. Optional[str],
  28. Field(default=None,vo=VoAccess(query=True))
  29. ]
  30. cron_expression: Optional[str] = None
  31. misfire_policy: Annotated[
  32. Optional[str],
  33. BeforeValidator(int_to_str)
  34. ] = None
  35. concurrent: Annotated[
  36. Optional[str],
  37. BeforeValidator(int_to_str)
  38. ] = None
  39. status: Annotated[
  40. Optional[str],
  41. Field(default=None,vo=VoAccess(query=True))
  42. ]
  43. remark: Optional[str] = None
  44. # 创建时间
  45. create_time: Annotated[
  46. Optional[datetime],
  47. BeforeValidator(to_datetime([DATETIME_FORMAT, DateUtil.YYYY_MM_DD_HH_MM_SS])),
  48. Field(default=None,vo=VoAccess(body=False))
  49. ]
  50. # 更新时间
  51. update_time: Annotated[
  52. Optional[datetime],
  53. BeforeValidator(to_datetime([DATETIME_FORMAT, DateUtil.YYYY_MM_DD_HH_MM_SS])),
  54. Field(default=None,vo=VoAccess(body=False))
  55. ]
  56. @property
  57. def job_key(self):
  58. return f"{self.job_id}_{self.job_group}"
  59. class SysJobLog(BaseEntity):
  60. job_log_id: Annotated[
  61. Optional[int],
  62. BeforeValidator(str_to_int),
  63. Field(default=None)
  64. ]
  65. job_name: Annotated[
  66. Optional[str],
  67. Field(default=None,vo=VoAccess(query=True))
  68. ]
  69. job_group: Annotated[
  70. Optional[str],
  71. Field(default=None,vo=VoAccess(query=True))
  72. ]
  73. invoke_target: Optional[str] = None
  74. job_message: Annotated[
  75. Optional[str],
  76. Field(default=None,vo=VoAccess(query=True))
  77. ]
  78. status: Annotated[
  79. Optional[str],
  80. Field(default=None,vo=VoAccess(query=True))
  81. ]
  82. exception_info: Optional[str] = None
  83. # 创建时间
  84. create_time: Annotated[
  85. Optional[datetime],
  86. BeforeValidator(to_datetime()),
  87. Field(default=None,vo=VoAccess(body=False,query=True))
  88. ]