feat: wmaterial增加count_working proptey

This commit is contained in:
caoqianming 2024-09-12 11:19:00 +08:00
parent bc92e90765
commit 7a8bee5e59
2 changed files with 5 additions and 0 deletions

View File

@ -8,6 +8,7 @@ from apps.em.models import Equipment
from apps.system.models import Dept from apps.system.models import Dept
from datetime import timedelta from datetime import timedelta
from apps.pum.models import Supplier from apps.pum.models import Supplier
from django.db.models import Sum
# Create your models here. # 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') 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) 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): class Fmlog(CommonADModel):
route = models.ForeignKey(Route, verbose_name='生产路线', on_delete=models.SET_NULL, null=True, blank=True) route = models.ForeignKey(Route, verbose_name='生产路线', on_delete=models.SET_NULL, null=True, blank=True)

View File

@ -181,6 +181,7 @@ class WMaterialSerializer(CustomModelSerializer):
source='belong_dept.name', read_only=True) source='belong_dept.name', read_only=True)
material_origin_name = serializers.StringRelatedField(source='material_origin', read_only=True) material_origin_name = serializers.StringRelatedField(source='material_origin', read_only=True)
notok_sign_name = serializers.SerializerMethodField() notok_sign_name = serializers.SerializerMethodField()
count_working = serializers.CharField(read_only=True, label='在制数量')
def get_notok_sign_name(self, obj): def get_notok_sign_name(self, obj):
return getattr(NotOkOption, obj.notok_sign, NotOkOption.qt).label if obj.notok_sign else None return getattr(NotOkOption, obj.notok_sign, NotOkOption.qt).label if obj.notok_sign else None