factory/apps/inm/correct.py

25 lines
868 B
Python

from .models import MaterialBatch
from apps.mtm.models import Material, Mgroup
from apps.system.models import Dept
from rest_framework.exceptions import ParseError
def correct_material_batch():
"""矫正物料批次
"""
mgroups = Mgroup.objects.all()
p_dict = {}
for mgroup in mgroups:
processId = mgroup.process.id
dept: Dept = mgroup.belong_dept
if processId not in p_dict:
p_dict[processId] = dept
else:
raise ParseError('存在多个同工序的工段:{}'.format(mgroup.name))
mbs = MaterialBatch.objects.filter(material__type__in=[Material.MA_TYPE_GOOD, Material.MA_TYPE_HALFGOOD],
production_dept=None)
for mb in mbs:
if mb.material.process:
processId = mb.material.process.id
mb.production_dept = p_dict[processId]
mb.save()