feat: 提供修改编号的接口

This commit is contained in:
caoqianming 2025-11-13 16:29:55 +08:00
parent c21a39b52d
commit 7c3e63668e
2 changed files with 36 additions and 1 deletions

View File

@ -1549,4 +1549,9 @@ class MlogQuickSerializer(serializers.Serializer):
mgroup = serializers.CharField(label="工段ID")
route = serializers.CharField(label="工艺步骤ID", required=False)
mtask = serializers.CharField(label="任务ID", required=False)
handle_user = serializers.CharField(label="操作人员ID")
handle_user = serializers.CharField(label="操作人员ID")
class BatchChangeSerializer(serializers.Serializer):
old_batch = serializers.CharField(label="原批号")
new_batch = serializers.CharField(label="新批号")

View File

@ -49,6 +49,7 @@ from .serializers import (
MlogQuickSerializer,
MlogbwStartTestSerializer,
HandoverListSerializer,
BatchChangeSerializer
)
from .services import mlog_submit, handover_submit, mlog_revert, get_batch_dag, handover_revert
from apps.wpm.services import mlog_submit_validate, generate_new_batch
@ -203,6 +204,35 @@ class WMaterialViewSet(CustomListModelMixin, CustomGenericViewSet):
defect_ids = queryset.values_list("defect", flat=True).distinct()
return Response(DefectSerializer(Defect.objects.filter(id__in=defect_ids), many=True).data)
@action(methods=["post"], detail=False, perms_map={"post": "*"}, serializer_class=BatchChangeSerializer)
@transaction.atomic
def change_batch(self, request, *args, **kwargs):
"""修改批次号"""
sr = BatchChangeSerializer(data=request.data)
sr.is_valid(raise_exception=True)
vdata = sr.validated_data
new_batch = vdata["new_batch"]
old_batch = vdata["old_batch"]
if BatchSt.objects.filter(batch=new_batch).exists():
raise ParseError("新批次号已存在,不可使用")
from apps.cm.models import LableMat
from apps.inm.models import MIOItem, MaterialBatch, MaterialBatchA, MIOItemA
from apps.qm.models import FtestWork
LableMat.objects.filter(batch=old_batch).update(batch=new_batch)
MIOItem.objects.filter(batch=old_batch).update(batch=new_batch)
MIOItemA.objects.filter(batch=old_batch).update(batch=new_batch)
MaterialBatch.objects.filter(batch=old_batch).update(batch=new_batch)
MaterialBatchA.objects.filter(batch=old_batch).update(batch=new_batch)
FtestWork.objects.filter(batch=old_batch).update(batch=new_batch)
Mlog.objects.filter(batch=old_batch).update(batch=new_batch)
Mlogb.objects.filter(batch=old_batch).update(batch=new_batch)
WMaterial.objects.filter(batch=old_batch).update(batch=new_batch)
Handover.objects.filter(batch=old_batch).update(batch=new_batch)
Handoverb.objects.filter(batch=old_batch).update(batch=new_batch)
Handover.objects.filter(new_batch=old_batch).update(new_batch=new_batch)
BatchSt.objects.filter(batch=old_batch).update(batch=new_batch)
return Response()
class MlogViewSet(CustomModelViewSet):
"""