forked from erp-dev/erp
fix: business.object_id maybe null, missing parameters when plate-Order cloned
This commit is contained in:
@@ -121,6 +121,12 @@ class PlateOrderAdmin(admin.ModelAdmin):
|
||||
messages.append(f"{obj.id}: 没有关联的流程实例,无法推进")
|
||||
continue
|
||||
|
||||
# 修复历史/异常数据:确保该订单的流程实例正确绑定到订单(避免 BusinessObject.object_id/content_type 为空)
|
||||
services.ensure_business_object_bound_to_instance(
|
||||
obj.business_object,
|
||||
obj,
|
||||
default_name=f"PlateOrder-{obj.id}",
|
||||
)
|
||||
success, message, state_log = services.advance_to_next_state(obj.business_object, request.user)
|
||||
if success:
|
||||
success_count += 1
|
||||
@@ -375,6 +381,12 @@ class PrintingJobAdmin(admin.ModelAdmin):
|
||||
messages.append(f"PrintingJob #{obj.id}: 没有关联的业务对象,无法推进")
|
||||
continue
|
||||
|
||||
# 修复历史/异常数据:确保该 job 的流程实例正确绑定到 job(避免 BusinessObject.object_id/content_type 为空)
|
||||
services.ensure_business_object_bound_to_instance(
|
||||
obj.business_object,
|
||||
obj,
|
||||
default_name=f"PrintingJob-{obj.id}",
|
||||
)
|
||||
success, message, state_log = services.advance_to_next_state(obj.business_object, request.user)
|
||||
if success:
|
||||
success_count += 1
|
||||
|
||||
21
printing/migrations/0025_plateorder_created_by.py
Normal file
21
printing/migrations/0025_plateorder_created_by.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# Generated by Django 5.2.8 on 2025-12-16 11:52
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('printing', '0024_printingjobbatchadvancerecord'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='plateorder',
|
||||
name='created_by',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_plate_orders', to=settings.AUTH_USER_MODEL, verbose_name='创建人'),
|
||||
),
|
||||
]
|
||||
@@ -107,6 +107,14 @@ class PlateOrder(ModelBase):
|
||||
|
||||
# 流程管理
|
||||
process = models.IntegerField(default=settings.PLATE_ORDER_DEFAULT_PROCESS_ID, verbose_name='关联流程')
|
||||
created_by = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL,
|
||||
on_delete=models.SET_NULL,
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name='created_plate_orders',
|
||||
verbose_name='创建人',
|
||||
)
|
||||
business_object = models.OneToOneField(
|
||||
stateflow_models.BusinessObject,
|
||||
on_delete=models.SET_NULL,
|
||||
|
||||
Reference in New Issue
Block a user