1
0
forked from erp-dev/erp

feat: added plate order clone

This commit is contained in:
2025-12-16 08:42:53 +08:00
parent 4c9b8e6a42
commit 0638dd1ad3
25 changed files with 46174 additions and 8 deletions

View File

@@ -1,6 +1,7 @@
from decimal import Decimal
from django.conf import settings
from django.contrib.contenttypes.models import ContentType
from django.db import models
from flower.common import ModelBase
from basic_info import models as basic_models
@@ -139,7 +140,11 @@ class PlateOrder(ModelBase):
# 创建 BusinessObject
business_object = stateflow_models.BusinessObject.objects.create(
process=process_obj
name=f"PlateOrder-{self.id}",
process=process_obj,
description=f"开版订单 {self.id} 的流程实例",
content_type=ContentType.objects.get_for_model(PlateOrder),
object_id=self.id,
)
self.business_object = business_object
# 再次保存以更新 business_object 字段
@@ -403,3 +408,52 @@ class PrintingJob(ModelBase):
class Meta:
verbose_name = '印染款式明细'
verbose_name_plural = '印染款式明细'
class PrintingJobBatchAdvanceRecord(ModelBase):
"""
印染任务批量推进记录(审计)
记录一次“对多个 PrintingJob 用同一组参数推进同一步流程节点”的行为:
- created_by/created_at谁在何时做了批量推进
- parameters本次推进提交的工艺参数JSON
- state本次被“完成”的流程节点即推进时的 next_pending_state
- printing_jobs本次批量推进涉及的所有明细
"""
printing_order = models.ForeignKey(
PrintingOrder,
on_delete=models.PROTECT,
related_name='batch_advance_records',
verbose_name='印染订单',
)
state = models.ForeignKey(
stateflow_models.State,
on_delete=models.PROTECT,
related_name='printing_job_batch_advance_records',
verbose_name='完成的流程节点',
)
created_by = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.SET_NULL,
null=True,
blank=True,
related_name='printing_job_batch_advance_records',
verbose_name='创建人',
)
parameters = models.JSONField(
default=dict,
blank=True,
verbose_name='工艺参数',
help_text='批量推进时提交的参数(与单条推进一致)',
)
printing_jobs = models.ManyToManyField(
PrintingJob,
related_name='batch_advance_records',
verbose_name='印染明细',
blank=False,
)
class Meta:
verbose_name = '印染任务批量推进记录'
verbose_name_plural = '印染任务批量推进记录'