fix: mlogbinserializer

This commit is contained in:
caoqianming 2025-09-26 14:30:51 +08:00
parent 419b52f9be
commit f9c9a592e3
1 changed files with 3 additions and 1 deletions

View File

@ -726,7 +726,7 @@ class MlogbInSerializer(CustomModelSerializer):
class Meta: class Meta:
model = Mlogb model = Mlogb
fields = ['id', 'mlog', 'mtask', 'route', 'wm_in', 'count_use', 'count_pn_jgqbl', fields = ['id', 'mlog', 'mtask', 'route', 'wm_in', 'count_use', 'count_pn_jgqbl',
'count_break', 'note', "parent", "mlogbdefect", "count_json_from"] 'count_break', 'note', "parent", "mlogbdefect", "count_json_from", "wprs_in"]
extra_kwargs = {'count_use': {'required': True}, 'mtask': {'required': False}, extra_kwargs = {'count_use': {'required': True}, 'mtask': {'required': False},
'wm_in': {'required': True, "allow_empty": False}} 'wm_in': {'required': True, "allow_empty": False}}
@ -778,12 +778,14 @@ class MlogbInSerializer(CustomModelSerializer):
mlog: Mlog = validated_data['mlog'] mlog: Mlog = validated_data['mlog']
mtask: Mtask = validated_data.get("mtask", None) mtask: Mtask = validated_data.get("mtask", None)
mlogbdefect = validated_data.pop("mlogbdefect", None) mlogbdefect = validated_data.pop("mlogbdefect", None)
wprs_in = validated_data.pop("wprs_in", [])
if Mlogb.objects.filter(mlog=mlog, mtask=mtask, wm_in=validated_data['wm_in'], parent=None).exists(): if Mlogb.objects.filter(mlog=mlog, mtask=mtask, wm_in=validated_data['wm_in'], parent=None).exists():
raise ParseError('该记录已存在') raise ParseError('该记录已存在')
if mlog.submit_time is not None: if mlog.submit_time is not None:
raise ParseError('生产日志已提交不可编辑') raise ParseError('生产日志已提交不可编辑')
ins:Mlogb = super().create(validated_data) ins:Mlogb = super().create(validated_data)
validated_data["wprs_in"] = wprs_in
if mlogbdefect is not None and ins.material_in.tracking == Material.MA_TRACKING_BATCH: if mlogbdefect is not None and ins.material_in.tracking == Material.MA_TRACKING_BATCH:
mlogb_defect_objects = [ mlogb_defect_objects = [
MlogbDefect(**{**item, "mlogb": ins, "id": idWorker.get_id()}) MlogbDefect(**{**item, "mlogb": ins, "id": idWorker.get_id()})