diff --git a/hb_server/apps/mtm/serializers.py b/hb_server/apps/mtm/serializers.py index 8bcbd24..8e77bd3 100644 --- a/hb_server/apps/mtm/serializers.py +++ b/hb_server/apps/mtm/serializers.py @@ -227,7 +227,7 @@ class RecordFormCreateSerializer(serializers.ModelSerializer): class RecordFormUpdateSerializer(serializers.ModelSerializer): class Meta: model = RecordForm - fields = ['name', 'type', 'number', 'enabled', 'export_template', 'material'] + fields = ['name', 'type', 'number', 'enabled', 'export_template', 'material', 'form'] # def validate(self, attrs): # if attrs['enabled']: @@ -280,7 +280,7 @@ class RecordFormFieldCreateSerializer(serializers.ModelSerializer): class RecordFormFieldUpdateSerializer(serializers.ModelSerializer): class Meta: model = RecordFormField - exclude = ['field_key'] + fields = '__all__' class RecordFormFieldSimpleSerializer(serializers.ModelSerializer): class Meta: diff --git a/hb_server/apps/wpm/serializers.py b/hb_server/apps/wpm/serializers.py index 911d318..8479f45 100644 --- a/hb_server/apps/wpm/serializers.py +++ b/hb_server/apps/wpm/serializers.py @@ -8,7 +8,7 @@ from apps.inm.serializers import WareHouseSimpleSerializer from apps.inm.services import InmService from apps.mtm.models import Material, RecordForm, RecordFormField, Step, SubprodctionMaterial from apps.mtm.serializers import MaterialSimpleSerializer, ProcessSimpleSerializer, RecordFormSimpleSerializer, StepSimpleSerializer -from django.db.models.aggregates import Sum +from django.db.models.aggregates import Sum, Count from apps.pm.models import ProductionPlan, SubProductionPlan, SubProductionProgress from django.utils import timezone from django.utils.translation import gettext_lazy as _ @@ -282,18 +282,24 @@ class OperationListSerializer(serializers.ModelSerializer): # return WProduct.objects.filter(ow_wproduct__operation=obj).values('id', 'number') def get_out_detail(self, obj): - qs = OperationMaterial.objects.filter(operation=obj, - type=SubprodctionMaterial.SUB_MA_TYPE_OUT, subproduction_progress__is_main=True).values( - 'subproduction_plan__production_plan', - 'subproduction_plan__production_plan__product' - ).annotate(count=Sum('count')) rets = [] + if obj.step.type == Step.STEP_TYPE_NOM: + qs = OperationWproduct.objects.filter(operation=obj).values( + 'subproduction_plan__production_plan', + 'subproduction_plan__production_plan__product' + ).annotate(count=Count('wproduct')) + else: + qs = OperationMaterial.objects.filter(operation=obj, + type=SubprodctionMaterial.SUB_MA_TYPE_OUT, subproduction_progress__is_main=True).values( + 'subproduction_plan__production_plan', + 'subproduction_plan__production_plan__product' + ).annotate(count=Sum('count')) for i in qs: ret = {} ret['plan'] = ProductionPlanSimpleSerializer(instance=ProductionPlan.objects.get( - id= i['subproduction_plan__production_plan'])).data + id= i['subproduction_plan__production_plan'])).data ret['product'] = MaterialSimpleSerializer(instance=Material.objects.get( - id=i['subproduction_plan__production_plan__product'])).data + id=i['subproduction_plan__production_plan__product'])).data ret['count'] = i['count'] rets.append(ret) return rets diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index b93250c..3b4ab4a 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -605,8 +605,8 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd # 查询需要填写的自定义表格 forms = RecordForm.objects.filter( step=step, type=RecordForm.RF_TYPE_DO, enabled=True) - # 根据产品不同进行筛选 - if 'wproducts' in vdata: + # 根据产品不同进行筛选 这里其实是有问题的,应该是以产出物归属产品来查表,但操作刚创建是没有的,先这样吧 + if 'wproducts' in vdata and splans: xforms = forms.filter(material=splans[0].production_plan.product) if xforms.exists(): forms = xforms