From 7a8bee5e59d45c00d246fc5fe648f32bed80e6a5 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 12 Sep 2024 11:19:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20wmaterial=E5=A2=9E=E5=8A=A0count=5Fwork?= =?UTF-8?q?ing=20proptey?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/models.py | 4 ++++ apps/wpm/serializers.py | 1 + 2 files changed, 5 insertions(+) diff --git a/apps/wpm/models.py b/apps/wpm/models.py index 4500fb6a..c5c7e53c 100644 --- a/apps/wpm/models.py +++ b/apps/wpm/models.py @@ -8,6 +8,7 @@ from apps.em.models import Equipment from apps.system.models import Dept from datetime import timedelta from apps.pum.models import Supplier +from django.db.models import Sum # Create your models here. @@ -106,6 +107,9 @@ class WMaterial(CommonBDModel): material_origin = models.ForeignKey(Material, verbose_name='原始物料', on_delete=models.SET_NULL, null=True, blank=True, related_name='wm_mo') count_xtest = models.PositiveIntegerField('已检数量', null=True, blank=True) + @property + def count_working(self, obj): + return Mlogb.objects.filter(wm_in=obj, mlog__work_end_time__isnull=True).aggregate(count=Sum('count'))['count'] or 0 class Fmlog(CommonADModel): route = models.ForeignKey(Route, verbose_name='生产路线', on_delete=models.SET_NULL, null=True, blank=True) diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 5611e42c..a468824b 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -181,6 +181,7 @@ class WMaterialSerializer(CustomModelSerializer): source='belong_dept.name', read_only=True) material_origin_name = serializers.StringRelatedField(source='material_origin', read_only=True) notok_sign_name = serializers.SerializerMethodField() + count_working = serializers.CharField(read_only=True, label='在制数量') def get_notok_sign_name(self, obj): return getattr(NotOkOption, obj.notok_sign, NotOkOption.qt).label if obj.notok_sign else None