forked from erp-dev/erp
fix: business.object_id maybe null, missing parameters when plate-Order cloned
This commit is contained in:
@@ -357,6 +357,12 @@ class PrintingJobViewSet(viewsets.ModelViewSet):
|
||||
|
||||
# 调用 stateflow 统一服务进行状态流转
|
||||
from stateflow import services as stateflow_services
|
||||
# 修复历史/异常数据:确保该 job 的流程实例正确绑定到 job(避免 BusinessObject.object_id/content_type 为空)
|
||||
stateflow_services.ensure_business_object_bound_to_instance(
|
||||
job.business_object,
|
||||
job,
|
||||
default_name=f"PrintingJob-{job.id}",
|
||||
)
|
||||
success, message, state_log = stateflow_services.advance_to_next_state(
|
||||
job.business_object, request.user, **parameters
|
||||
)
|
||||
@@ -641,6 +647,12 @@ class PlateOrderViewSet(viewsets.ModelViewSet):
|
||||
{'detail': '开版订单不支持删除操作,请使用作废功能'},
|
||||
status=status.HTTP_405_METHOD_NOT_ALLOWED
|
||||
)
|
||||
|
||||
def perform_create(self, serializer):
|
||||
"""
|
||||
创建时自动绑定创建人(created_by),不允许前端传参控制。
|
||||
"""
|
||||
serializer.save(created_by=self.request.user)
|
||||
|
||||
@action(detail=True, methods=['post'])
|
||||
def invalidate(self, request, pk=None):
|
||||
@@ -739,6 +751,12 @@ class PlateOrderViewSet(viewsets.ModelViewSet):
|
||||
|
||||
# 调用 stateflow 统一服务进行状态流转
|
||||
from stateflow import services as stateflow_services
|
||||
# 修复历史/异常数据:确保该 plate_order 的流程实例正确绑定到 plate_order(避免 BusinessObject.object_id/content_type 为空)
|
||||
stateflow_services.ensure_business_object_bound_to_instance(
|
||||
plate_order.business_object,
|
||||
plate_order,
|
||||
default_name=f"PlateOrder-{plate_order.id}",
|
||||
)
|
||||
success, message, state_log = stateflow_services.advance_to_next_state(
|
||||
plate_order.business_object, request.user, **parameters
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user