Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop
This commit is contained in:
commit
c5005b0e7f
|
@ -227,7 +227,7 @@ class RecordFormCreateSerializer(serializers.ModelSerializer):
|
|||
class RecordFormUpdateSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = RecordForm
|
||||
fields = ['name', 'type', 'number', 'enabled', 'export_template']
|
||||
fields = ['name', 'type', 'number', 'enabled', 'export_template', 'material']
|
||||
|
||||
# def validate(self, attrs):
|
||||
# if attrs['enabled']:
|
||||
|
|
|
@ -216,10 +216,10 @@ class RecordFormViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelViewSet
|
|||
instance.save()
|
||||
if form:
|
||||
for i in RecordFormField.objects.filter(form=form, is_deleted=False):
|
||||
i.pk = None
|
||||
i.form = instance
|
||||
i.parent = None
|
||||
i.save()
|
||||
i.pk = None
|
||||
i.form = instance
|
||||
i.parent = None
|
||||
i.save()
|
||||
return Response()
|
||||
|
||||
|
||||
|
|
|
@ -20,6 +20,11 @@ class ProductionPlanSerializer(DynamicFieldsSerializerMixin, serializers.ModelSe
|
|||
model = ProductionPlan
|
||||
fields ='__all__'
|
||||
|
||||
class ProductionPlanSimpleSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ProductionPlan
|
||||
fields = ['number', 'state']
|
||||
|
||||
class ResourceCalSerializer(serializers.Serializer):
|
||||
id = serializers.IntegerField(label='产品ID')
|
||||
count = serializers.IntegerField(label='生产数量')
|
||||
|
|
|
@ -8,11 +8,11 @@ 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 apps.pm.models import SubProductionPlan, SubProductionProgress
|
||||
from django.db.models.aggregates import Sum
|
||||
from apps.pm.models import ProductionPlan, SubProductionPlan, SubProductionProgress
|
||||
from django.utils import timezone
|
||||
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.sam.serializers import OrderSimpleSerializer
|
||||
from apps.system.models import User
|
||||
|
@ -265,13 +265,15 @@ class OperationDetailSerializer(serializers.ModelSerializer):
|
|||
fields = '__all__'
|
||||
|
||||
class OperationListSerializer(serializers.ModelSerializer):
|
||||
|
||||
create_by_ = UserSimpleSerializer(source='create_by', read_only=True)
|
||||
update_by_ = UserSimpleSerializer(source='update_by', read_only=True)
|
||||
step_ = StepSimpleSerializer(source='step', read_only=True)
|
||||
out_detail = serializers.SerializerMethodField()
|
||||
# wproduct_ = serializers.SerializerMethodField()
|
||||
count_work = serializers.SerializerMethodField()
|
||||
equip_ = serializers.SerializerMethodField()
|
||||
record_ = serializers.SerializerMethodField()
|
||||
# count_work = serializers.SerializerMethodField()
|
||||
# equip_ = serializers.SerializerMethodField()
|
||||
# record_ = serializers.SerializerMethodField()
|
||||
class Meta:
|
||||
model = Operation
|
||||
fields = '__all__'
|
||||
|
@ -279,8 +281,25 @@ class OperationListSerializer(serializers.ModelSerializer):
|
|||
# def get_wproduct_(self, obj):
|
||||
# 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 = []
|
||||
for i in qs:
|
||||
ret = {}
|
||||
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']
|
||||
rets.append(ret)
|
||||
return rets
|
||||
|
||||
def get_count_work(self, obj):
|
||||
from django.db.models.aggregates import Sum
|
||||
|
||||
count_work = 0
|
||||
if obj.step.type == Step.STEP_TYPE_NOM:
|
||||
count_work = OperationWproduct.objects.filter(operation=obj).count()
|
||||
|
|
|
@ -539,7 +539,7 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd
|
|||
|
||||
def get_serializer_class(self):
|
||||
if self.action == 'retrieve':
|
||||
return OperationDetailSerializer
|
||||
return OperationListSerializer
|
||||
elif self.action == 'create':
|
||||
return OperationCreateSerializer
|
||||
elif self.action == 'update':
|
||||
|
@ -605,6 +605,11 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd
|
|||
# 查询需要填写的自定义表格
|
||||
forms = RecordForm.objects.filter(
|
||||
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:
|
||||
opr = OperationRecord()
|
||||
opr.operation = op
|
||||
|
|
Loading…
Reference in New Issue