recordformfield update __all__

This commit is contained in:
曹前明 2022-05-24 15:22:08 +08:00
parent 072a3ad0ed
commit e80d404de8
3 changed files with 18 additions and 12 deletions

View File

@ -227,7 +227,7 @@ class RecordFormCreateSerializer(serializers.ModelSerializer):
class RecordFormUpdateSerializer(serializers.ModelSerializer): class RecordFormUpdateSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = RecordForm model = RecordForm
fields = ['name', 'type', 'number', 'enabled', 'export_template', 'material'] fields = ['name', 'type', 'number', 'enabled', 'export_template', 'material', 'form']
# def validate(self, attrs): # def validate(self, attrs):
# if attrs['enabled']: # if attrs['enabled']:
@ -280,7 +280,7 @@ class RecordFormFieldCreateSerializer(serializers.ModelSerializer):
class RecordFormFieldUpdateSerializer(serializers.ModelSerializer): class RecordFormFieldUpdateSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = RecordFormField model = RecordFormField
exclude = ['field_key'] fields = '__all__'
class RecordFormFieldSimpleSerializer(serializers.ModelSerializer): class RecordFormFieldSimpleSerializer(serializers.ModelSerializer):
class Meta: class Meta:

View File

@ -8,7 +8,7 @@ from apps.inm.serializers import WareHouseSimpleSerializer
from apps.inm.services import InmService from apps.inm.services import InmService
from apps.mtm.models import Material, RecordForm, RecordFormField, Step, SubprodctionMaterial from apps.mtm.models import Material, RecordForm, RecordFormField, Step, SubprodctionMaterial
from apps.mtm.serializers import MaterialSimpleSerializer, ProcessSimpleSerializer, RecordFormSimpleSerializer, StepSimpleSerializer 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 apps.pm.models import ProductionPlan, SubProductionPlan, SubProductionProgress
from django.utils import timezone from django.utils import timezone
from django.utils.translation import gettext_lazy as _ 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') # return WProduct.objects.filter(ow_wproduct__operation=obj).values('id', 'number')
def get_out_detail(self, obj): 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 = [] 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: for i in qs:
ret = {} ret = {}
ret['plan'] = ProductionPlanSimpleSerializer(instance=ProductionPlan.objects.get( 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( 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'] ret['count'] = i['count']
rets.append(ret) rets.append(ret)
return rets return rets

View File

@ -605,8 +605,8 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd
# 查询需要填写的自定义表格 # 查询需要填写的自定义表格
forms = RecordForm.objects.filter( forms = RecordForm.objects.filter(
step=step, type=RecordForm.RF_TYPE_DO, enabled=True) 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) xforms = forms.filter(material=splans[0].production_plan.product)
if xforms.exists(): if xforms.exists():
forms = xforms forms = xforms