OperationListSerializer修改
This commit is contained in:
parent
b02edd3751
commit
074520a418
|
@ -216,10 +216,10 @@ class RecordFormViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelViewSet
|
||||||
instance.save()
|
instance.save()
|
||||||
if form:
|
if form:
|
||||||
for i in RecordFormField.objects.filter(form=form, is_deleted=False):
|
for i in RecordFormField.objects.filter(form=form, is_deleted=False):
|
||||||
i.pk = None
|
i.pk = None
|
||||||
i.form = instance
|
i.form = instance
|
||||||
i.parent = None
|
i.parent = None
|
||||||
i.save()
|
i.save()
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,11 @@ class ProductionPlanSerializer(DynamicFieldsSerializerMixin, serializers.ModelSe
|
||||||
model = ProductionPlan
|
model = ProductionPlan
|
||||||
fields ='__all__'
|
fields ='__all__'
|
||||||
|
|
||||||
|
class ProductionPlanSimpleSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = ProductionPlan
|
||||||
|
fields = ['number', 'state']
|
||||||
|
|
||||||
class ResourceCalSerializer(serializers.Serializer):
|
class ResourceCalSerializer(serializers.Serializer):
|
||||||
id = serializers.IntegerField(label='产品ID')
|
id = serializers.IntegerField(label='产品ID')
|
||||||
count = serializers.IntegerField(label='生产数量')
|
count = serializers.IntegerField(label='生产数量')
|
||||||
|
|
|
@ -8,11 +8,11 @@ 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 apps.pm.models import 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 _
|
||||||
from apps.pm.serializers import SubproductionPlanSimpleSerializer
|
from apps.pm.serializers import ProductionPlanSerializer, ProductionPlanSimpleSerializer, SubproductionPlanSimpleSerializer
|
||||||
from apps.qm.models import TestRecord, TestRecordItem
|
from apps.qm.models import TestRecord, TestRecordItem
|
||||||
from apps.sam.serializers import OrderSimpleSerializer
|
from apps.sam.serializers import OrderSimpleSerializer
|
||||||
from apps.system.models import User
|
from apps.system.models import User
|
||||||
|
@ -265,13 +265,15 @@ class OperationDetailSerializer(serializers.ModelSerializer):
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
class OperationListSerializer(serializers.ModelSerializer):
|
class OperationListSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
create_by_ = UserSimpleSerializer(source='create_by', read_only=True)
|
create_by_ = UserSimpleSerializer(source='create_by', read_only=True)
|
||||||
update_by_ = UserSimpleSerializer(source='update_by', read_only=True)
|
update_by_ = UserSimpleSerializer(source='update_by', read_only=True)
|
||||||
step_ = StepSimpleSerializer(source='step', read_only=True)
|
step_ = StepSimpleSerializer(source='step', read_only=True)
|
||||||
|
out_detail = serializers.SerializerMethodField()
|
||||||
# wproduct_ = serializers.SerializerMethodField()
|
# wproduct_ = serializers.SerializerMethodField()
|
||||||
count_work = serializers.SerializerMethodField()
|
# count_work = serializers.SerializerMethodField()
|
||||||
equip_ = serializers.SerializerMethodField()
|
# equip_ = serializers.SerializerMethodField()
|
||||||
record_ = serializers.SerializerMethodField()
|
# record_ = serializers.SerializerMethodField()
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Operation
|
model = Operation
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
@ -279,8 +281,23 @@ class OperationListSerializer(serializers.ModelSerializer):
|
||||||
# def get_wproduct_(self, obj):
|
# def get_wproduct_(self, obj):
|
||||||
# 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):
|
||||||
|
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'))
|
||||||
|
ret = {}
|
||||||
|
for i in qs:
|
||||||
|
ret['plan'] = ProductionPlanSimpleSerializer(instance=ProductionPlan.objects.get(
|
||||||
|
id= i['subproduction_plan__production_plan'])).data
|
||||||
|
ret['product'] = MaterialSimpleSerializer(instance=Material.objects.get(
|
||||||
|
id=i['subproduction_plan__production_plan__product'])).data
|
||||||
|
ret['count'] = i['count']
|
||||||
|
return ret
|
||||||
|
|
||||||
def get_count_work(self, obj):
|
def get_count_work(self, obj):
|
||||||
from django.db.models.aggregates import Sum
|
|
||||||
count_work = 0
|
count_work = 0
|
||||||
if obj.step.type == Step.STEP_TYPE_NOM:
|
if obj.step.type == Step.STEP_TYPE_NOM:
|
||||||
count_work = OperationWproduct.objects.filter(operation=obj).count()
|
count_work = OperationWproduct.objects.filter(operation=obj).count()
|
||||||
|
|
|
@ -605,6 +605,11 @@ 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:
|
||||||
|
xforms = forms.filter(material=splans[0].production_plan.product)
|
||||||
|
if xforms.exists():
|
||||||
|
forms = xforms
|
||||||
for i in forms:
|
for i in forms:
|
||||||
opr = OperationRecord()
|
opr = OperationRecord()
|
||||||
opr.operation = op
|
opr.operation = op
|
||||||
|
|
Loading…
Reference in New Issue