feat: mlogbbpatch修改批次号

This commit is contained in:
caoqianming 2026-01-04 11:10:54 +08:00
parent 52ebac68a0
commit 9ed78f8d32
2 changed files with 19 additions and 9 deletions

View File

@ -1049,6 +1049,11 @@ class MlogbwStartTestSerializer(serializers.Serializer):
test_equip=test_equip
)
class MlogbOutPatchUpdateSerializer(CustomModelSerializer):
class Meta:
model = Mlogb
fields = ["batch"]
class MlogbOutUpdateSerializer(CustomModelSerializer):
mlogbdefect = MlogbDefectSerializer(many=True, required=False)
count_json = CountJsonSerializer(required=False, many=True)

View File

@ -50,7 +50,8 @@ from .serializers import (
MlogQuickSerializer,
MlogbwStartTestSerializer,
HandoverListSerializer,
BatchChangeSerializer
BatchChangeSerializer,
MlogbOutPatchUpdateSerializer
)
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
@ -1020,18 +1021,22 @@ class MlogbInViewSet(BulkCreateModelMixin, BulkUpdateModelMixin, BulkDestroyMode
class MlogbOutViewSet(BulkUpdateModelMixin, CustomGenericViewSet):
perms_map = {"put": "mlog.update"}
perms_map = {"put": "mlog.update", "patch": "mlog.update"}
queryset = Mlogb.objects.filter(material_out__isnull=False)
serializer_class = MlogbOutUpdateSerializer
partial_update_serializer_class = MlogbOutPatchUpdateSerializer
def perform_update(self, serializer):
ins: Mlogb = serializer.instance
mlog = MlogViewSet.lock_and_check_can_update(ins.mlog)
material_out = serializer.validated_data.get("material_out")
if material_out and material_out.tracking == Material.MA_TRACKING_SINGLE:
raise ParseError("单件产品不支持直接修改")
ins: Mlogb = serializer.save()
mlog.cal_mlog_count_from_mlogb()
if self.request.method == "PATCH":
serializer.save()
else:
ins: Mlogb = serializer.instance
mlog = MlogViewSet.lock_and_check_can_update(ins.mlog)
material_out = serializer.validated_data.get("material_out")
if material_out and material_out.tracking == Material.MA_TRACKING_SINGLE:
raise ParseError("单件产品不支持直接修改")
ins: Mlogb = serializer.save()
mlog.cal_mlog_count_from_mlogb()
class FmlogViewSet(CustomModelViewSet):