1
0
forked from erp-dev/erp

feat: haobuye

This commit is contained in:
2026-03-20 20:00:12 +08:00
parent 84dbb2ee10
commit 96cc67706a
10 changed files with 1162 additions and 0 deletions

View File

@@ -93,6 +93,7 @@ class DataSync(ModelBase):
PRODUCT = 'product', '产品'
CUSTOMER = 'customer', '客户'
PLATE_ORDER = 'plate_order', '开版(明道云)'
PRINTING_EXTERNAL_RECORD = 'printing_external_record', '印染订单(外部 records'
MDY_PLATE_ORDER_STAGING_TIIA_UPLOAD = 'mdy_plate_order_staging_tiia_upload', '开版暂存-腾讯图库上传'
table_name = models.CharField(max_length=50, choices=TableName.choices, verbose_name='同步目标')
@@ -221,6 +222,38 @@ class MDYPlateOrderStagingTiiaUploadFailure(ModelBase):
return f'{self.run_date} {self.mdy_rowid}'
class PrintingExternalSyncFailure(ModelBase):
"""
外部印染 records 同步失败记录。
以外部 record.ID 为追踪主键,允许同一天重复失败时累加 attempts。
"""
run_date = models.DateField(db_index=True, verbose_name='任务日期')
external_record_id = models.PositiveBigIntegerField(db_index=True, verbose_name='外部记录ID')
external_order_id = models.CharField(max_length=100, blank=True, verbose_name='外部订单编号')
product_name = models.CharField(max_length=200, blank=True, verbose_name='外部产品名')
error = models.TextField(blank=True, verbose_name='错误摘要')
raw = models.JSONField(default=dict, blank=True, verbose_name='原始数据')
attempts = models.PositiveIntegerField(default=0, verbose_name='尝试次数')
last_attempt_at = models.DateTimeField(null=True, blank=True, verbose_name='最后尝试时间')
class Meta:
db_table = 'api_printing_external_sync_failure'
verbose_name = '外部印染同步失败记录'
verbose_name_plural = '外部印染同步失败记录'
ordering = ['-created_at']
constraints = [
models.UniqueConstraint(
fields=['run_date', 'external_record_id'],
name='uniq_printing_ext_sync_fail_run_date_record',
)
]
def __str__(self):
return f'{self.external_record_id} @ {self.run_date}'
class ApiAuditLog(models.Model):
"""API审计日志 - 记录创建操作的历史现场