1
0
forked from erp-dev/erp

feat: mission replied calling task

This commit is contained in:
2026-04-17 23:26:33 +08:00
parent e109c00837
commit 8b1afc64c5
22 changed files with 1056 additions and 95 deletions

View File

@@ -50,6 +50,19 @@ class Mission(ModelBase):
is_urgent = models.BooleanField(default=False, db_index=True, verbose_name="是否紧急")
is_completed = models.BooleanField(default=False, db_index=True, verbose_name="是否完成")
is_cancelled = models.BooleanField(default=False, db_index=True, verbose_name="是否取消")
notify_if_unreplied = models.BooleanField(default=False, db_index=True, verbose_name="是否开启未回复提醒")
unreplied_notify_interval_minutes = models.PositiveIntegerField(
null=True,
blank=True,
verbose_name="未回复提醒间隔(分钟)",
)
unreplied_notify_max_count = models.PositiveIntegerField(default=5, verbose_name="未回复最大提醒次数")
unreplied_notify_sent_count = models.PositiveIntegerField(default=0, verbose_name="未回复已提醒次数")
unreplied_last_notified_at = models.DateTimeField(
null=True,
blank=True,
verbose_name="上一次未回复提醒时间",
)
cancelled_at = models.DateTimeField(null=True, blank=True, verbose_name="取消时间")
creator = models.ForeignKey(
"basic_info.Employee",
@@ -84,6 +97,10 @@ class Mission(ModelBase):
def can_reply(self) -> bool:
return not self.is_cancelled and not self.has_ending_reply
@property
def has_effective_reply(self) -> bool:
return self.replies.filter(is_rejected=False).exists()
def get_participants(self):
return self.participants.select_related("employee")