diff --git a/apps/mtm/services.py b/apps/mtm/services.py index ac1da91c..1e8876d4 100644 --- a/apps/mtm/services.py +++ b/apps/mtm/services.py @@ -10,20 +10,23 @@ from apps.wpm.services import get_sflog from apps.wpm.tasks import cal_exp_duration_sec from apps.wf.models import Ticket from django.db.models import Sum +from typing import List -def cal_material_count(materialId_list: list = []): +def cal_material_count(materialId_list: List[str]=None): """ 计算物料总数量 """ from apps.inm.models import MaterialBatch from apps.wpm.models import WMaterial + if materialId_list is None: + materialId_list = [] if materialId_list: objs = Material.objects.filter(id__in=set(materialId_list)) else: objs = Material.objects.all() for material in objs: - mb_count = MaterialBatch.objects.filter(material=material).aggregate(total=Sum("count"))["total"] - wm_count = WMaterial.objects.filter(material=material).aggregate(total=Sum("count"))["total"] + mb_count = MaterialBatch.objects.filter(material=material).aggregate(total=Sum("count"))["total"] or 0 + wm_count = WMaterial.objects.filter(material=material).aggregate(total=Sum("count"))["total"] or 0 if mb_count is None: mb_count = 0 if wm_count is None: