1
0
forked from erp-dev/erp

feat: external_order refetch api

This commit is contained in:
2026-04-16 17:34:16 +08:00
parent 4f3109546d
commit e109c00837
9 changed files with 1547 additions and 0 deletions

View File

@@ -657,3 +657,71 @@ class PrintingJobBatchAdvanceRecord(ModelBase):
class Meta:
verbose_name = '印染任务批量操作记录'
verbose_name_plural = '印染任务批量操作记录'
class PrintingOrderExternalSnapshotSyncAudit(ModelBase):
"""
外部订单快照同步审计记录。
记录一次“按 external_order_id 触发外部快照覆盖同步”的执行结果:
- before_snapshot: 同步前本地 PrintingOrder / PrintingJob 快照
- operator_user / operator_employee: 触发人
- is_success / failure_reason: 成功或失败及失败原因
- allow_reset_stateflow: 本次是否允许撤销已有工序
"""
printing_order = models.ForeignKey(
PrintingOrder,
on_delete=models.SET_NULL,
null=True,
blank=True,
related_name='external_snapshot_sync_audits',
verbose_name='印染订单',
)
external_order_id = models.CharField(
max_length=100,
db_index=True,
verbose_name='外部订单编号',
)
operator_user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.SET_NULL,
null=True,
blank=True,
related_name='printing_order_external_snapshot_sync_audits',
verbose_name='操作者',
)
operator_employee = models.ForeignKey(
basic_models.Employee,
on_delete=models.SET_NULL,
null=True,
blank=True,
related_name='printing_order_external_snapshot_sync_audits',
verbose_name='操作员工',
)
before_snapshot = models.JSONField(
default=dict,
blank=True,
verbose_name='同步前快照',
)
allow_reset_stateflow = models.BooleanField(
default=False,
verbose_name='允许撤销工序',
)
is_success = models.BooleanField(
default=False,
verbose_name='是否成功',
)
failure_reason = models.TextField(
blank=True,
default='',
verbose_name='失败原因',
)
class Meta:
verbose_name = '外部订单快照同步审计记录'
verbose_name_plural = '外部订单快照同步审计记录'
ordering = ['-created_at', '-id']
def __str__(self) -> str:
return f'{self.external_order_id} #{self.id}'