fix: mlogbupdate serializer
This commit is contained in:
parent
2238ab119d
commit
982fa7f373
|
@ -725,17 +725,20 @@ class MlogbInSerializer(CustomModelSerializer):
|
||||||
MlogbDefect.objects.bulk_create(mlogb_defect_objects)
|
MlogbDefect.objects.bulk_create(mlogb_defect_objects)
|
||||||
ins.cal_count_pn_jgqbl()
|
ins.cal_count_pn_jgqbl()
|
||||||
return ins
|
return ins
|
||||||
|
|
||||||
|
class MlogbInUpdateSerializer(CustomModelSerializer):
|
||||||
|
mlogbdefect = MlogbDefectSerializer(many=True, required=False)
|
||||||
|
class Meta:
|
||||||
|
model = Mlogb
|
||||||
|
fields = ['id', 'count_use', 'count_pn_jgqbl', 'note', 'mlogbdefect']
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
mlog: Mlog = instance.mlog
|
mlog: Mlog = instance.mlog
|
||||||
mtask: Mtask = instance.mtask
|
|
||||||
mlogbdefect = validated_data.pop("mlogbdefect", None)
|
mlogbdefect = validated_data.pop("mlogbdefect", None)
|
||||||
if Mlogb.objects.filter(mlog=mlog, mtask=mtask, wm_in=validated_data['wm_in'], parent=None).exclude(id=instance.id).exists():
|
|
||||||
raise ParseError('该记录已存在')
|
|
||||||
if mlog.submit_time is not None:
|
if mlog.submit_time is not None:
|
||||||
raise ParseError('生产日志已提交不可编辑')
|
raise ParseError('生产日志已提交不可编辑')
|
||||||
ins = super().update(instance, validated_data)
|
ins = super().update(instance, validated_data)
|
||||||
if mlogbdefect is not None and ins.material_out.tracking == Material.MA_TRACKING_BATCH:
|
if mlogbdefect is not None and ins.material_in.tracking == Material.MA_TRACKING_BATCH:
|
||||||
MlogbDefect.objects.filter(mlogb=ins).delete()
|
MlogbDefect.objects.filter(mlogb=ins).delete()
|
||||||
mlogb_defect_objects = [
|
mlogb_defect_objects = [
|
||||||
MlogbDefect(**{**item, "mlogb": ins, "id": idWorker.get_id()})
|
MlogbDefect(**{**item, "mlogb": ins, "id": idWorker.get_id()})
|
||||||
|
@ -745,12 +748,7 @@ class MlogbInSerializer(CustomModelSerializer):
|
||||||
MlogbDefect.objects.bulk_create(mlogb_defect_objects)
|
MlogbDefect.objects.bulk_create(mlogb_defect_objects)
|
||||||
ins.cal_count_notok()
|
ins.cal_count_notok()
|
||||||
return ins
|
return ins
|
||||||
|
|
||||||
class MlogbInUpdateSerializer(CustomModelSerializer):
|
|
||||||
class Meta:
|
|
||||||
model = Mlogb
|
|
||||||
fields = ['id', 'count_use', 'count_break', 'count_pn_jgqbl', 'note']
|
|
||||||
|
|
||||||
class MlogbwCreateUpdateSerializer(CustomModelSerializer):
|
class MlogbwCreateUpdateSerializer(CustomModelSerializer):
|
||||||
ftest = FtestProcessSerializer(required=False)
|
ftest = FtestProcessSerializer(required=False)
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
|
@ -532,6 +532,7 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust
|
||||||
perms_map = {'post': 'mlog.update', 'delete': 'mlog.update', 'put': 'mlog.update'}
|
perms_map = {'post': 'mlog.update', 'delete': 'mlog.update', 'put': 'mlog.update'}
|
||||||
queryset = Mlogb.objects.filter(material_in__isnull=False)
|
queryset = Mlogb.objects.filter(material_in__isnull=False)
|
||||||
serializer_class = MlogbInSerializer
|
serializer_class = MlogbInSerializer
|
||||||
|
update_serializer_class = MlogbInUpdateSerializer
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def perform_destroy(self, instance):
|
def perform_destroy(self, instance):
|
||||||
|
|
Loading…
Reference in New Issue