From 3129cc0e54d14816a58374f106778cca11ac2ce8 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 29 Apr 2026 11:19:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20mio=20=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=96=B0=E5=A2=9E=20total=5Fprice=20=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=98=8E=E7=BB=86=E9=87=91=E9=A2=9D=E5=90=88=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/inm/serializers.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/inm/serializers.py b/apps/inm/serializers.py index 3f8fdce5..ee39f0ec 100644 --- a/apps/inm/serializers.py +++ b/apps/inm/serializers.py @@ -10,6 +10,7 @@ from apps.utils.serializers import CustomModelSerializer from apps.mtm.models import Material from .models import MIO, MaterialBatch, MIOItem, WareHouse, MIOItemA, MaterialBatchA, MIOItemw, Pack from django.db import transaction +from django.db.models import F, Sum, DecimalField from server.settings import get_sysconfig from apps.wpmw.models import Wpr from decimal import Decimal @@ -97,6 +98,7 @@ class MIOListSerializer(CustomModelSerializer): order_number = serializers.CharField(source='order.number', read_only=True) pu_order_number = serializers.CharField( source='pu_order.number', read_only=True) + total_price = serializers.SerializerMethodField(label='总价格') class Meta: model = MIO @@ -104,6 +106,12 @@ class MIOListSerializer(CustomModelSerializer): read_only_fields = EXCLUDE_FIELDS + \ ['state', 'submit_time', 'submit_user', 'number'] + def get_total_price(self, obj): + res = MIOItem.objects.filter(mio=obj, unit_price__isnull=False).aggregate( + total=Sum(F('count') * F('unit_price'), + output_field=DecimalField(max_digits=18, decimal_places=4))) + return res['total'] + class MIOItemACreateSerializer(CustomModelSerializer): class Meta: