forked from erp-dev/erp
feat: external_order refetch api
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('basic_info', '0026_transportvehicle_and_capacity'),
|
||||
('printing', '0037_printingjob_is_production_completed'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='PrintingOrderExternalSnapshotSyncAudit',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
||||
('external_order_id', models.CharField(db_index=True, max_length=100, verbose_name='外部订单编号')),
|
||||
('before_snapshot', models.JSONField(blank=True, default=dict, 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='失败原因')),
|
||||
('operator_employee', models.ForeignKey(blank=True, null=True, on_delete=models.SET_NULL, related_name='printing_order_external_snapshot_sync_audits', to='basic_info.employee', verbose_name='操作员工')),
|
||||
('operator_user', models.ForeignKey(blank=True, null=True, on_delete=models.SET_NULL, related_name='printing_order_external_snapshot_sync_audits', to=settings.AUTH_USER_MODEL, verbose_name='操作者')),
|
||||
('printing_order', models.ForeignKey(blank=True, null=True, on_delete=models.SET_NULL, related_name='external_snapshot_sync_audits', to='printing.printingorder', verbose_name='印染订单')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': '外部订单快照同步审计记录',
|
||||
'verbose_name_plural': '外部订单快照同步审计记录',
|
||||
'ordering': ['-created_at', '-id'],
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -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}'
|
||||
|
||||
Reference in New Issue
Block a user