1
0
forked from erp-dev/erp

feat: task for auto upload plate_image to tencent each day 03:00

This commit is contained in:
2026-01-16 20:22:35 +08:00
parent ea28d7a4cf
commit a39b9648a4
7 changed files with 311 additions and 3 deletions

View File

@@ -255,6 +255,54 @@ class PlateOrder(ModelBase):
return self.business_object.get_progress_percentage()
class PlateOrderTiiaUploadFailure(ModelBase):
"""
PlateOrder 图片上传腾讯云图库失败记录(用于定时任务/人工重试追踪)。
设计目标:最小可用——记录“哪天跑的任务 + 哪个 plate_order_id + 失败详情/次数”。
"""
run_date = models.DateField(
verbose_name='任务日期',
help_text='以任务处理的日期为准(通常为“昨天”)',
)
plate_order_id = models.PositiveBigIntegerField(
verbose_name='开版订单ID',
db_index=True,
help_text='PlateOrder.id不使用外键避免历史数据/删除带来的约束问题)',
)
error = models.TextField(
blank=True,
default='',
verbose_name='错误摘要',
)
details = models.JSONField(
default=list,
blank=True,
verbose_name='错误详情',
help_text='通常存储 upload_plate_order_images_to_tencent_tiia 返回的失败条目列表',
)
attempts = models.PositiveIntegerField(
default=0,
verbose_name='尝试次数',
)
last_attempt_at = models.DateTimeField(
null=True,
blank=True,
verbose_name='最后尝试时间',
)
class Meta:
verbose_name = '开版订单图片上传失败记录'
verbose_name_plural = '开版订单图片上传失败记录'
ordering = ['-created_at']
constraints = [
models.UniqueConstraint(
fields=['run_date', 'plate_order_id'],
name='uniq_plateorder_tiia_fail_run_date_po',
)
]
class PrintingOrder(ModelBase):
"""PrintingOrder model representing a printing order."""