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)
|
||||
ins.cal_count_pn_jgqbl()
|
||||
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):
|
||||
mlog: Mlog = instance.mlog
|
||||
mtask: Mtask = instance.mtask
|
||||
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:
|
||||
raise ParseError('生产日志已提交不可编辑')
|
||||
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()
|
||||
mlogb_defect_objects = [
|
||||
MlogbDefect(**{**item, "mlogb": ins, "id": idWorker.get_id()})
|
||||
|
@ -745,12 +748,7 @@ class MlogbInSerializer(CustomModelSerializer):
|
|||
MlogbDefect.objects.bulk_create(mlogb_defect_objects)
|
||||
ins.cal_count_notok()
|
||||
return ins
|
||||
|
||||
class MlogbInUpdateSerializer(CustomModelSerializer):
|
||||
class Meta:
|
||||
model = Mlogb
|
||||
fields = ['id', 'count_use', 'count_break', 'count_pn_jgqbl', 'note']
|
||||
|
||||
|
||||
class MlogbwCreateUpdateSerializer(CustomModelSerializer):
|
||||
ftest = FtestProcessSerializer(required=False)
|
||||
class Meta:
|
||||
|
|
|
@ -532,6 +532,7 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust
|
|||
perms_map = {'post': 'mlog.update', 'delete': 'mlog.update', 'put': 'mlog.update'}
|
||||
queryset = Mlogb.objects.filter(material_in__isnull=False)
|
||||
serializer_class = MlogbInSerializer
|
||||
update_serializer_class = MlogbInUpdateSerializer
|
||||
|
||||
@transaction.atomic
|
||||
def perform_destroy(self, instance):
|
||||
|
|
Loading…
Reference in New Issue