消耗产出物料接口bug
This commit is contained in:
parent
0238e09d0a
commit
8666c13da8
|
@ -1,4 +1,5 @@
|
|||
from django_filters import rest_framework as filters
|
||||
from apps.mtm.models import Material, Step
|
||||
from apps.pm.models import SubProductionProgress
|
||||
from apps.wpm.models import Operation, WProduct
|
||||
|
||||
|
@ -15,8 +16,12 @@ class SubproductionProgressFilterSet(filters.FilterSet):
|
|||
def filter_operation(self, queryset, name, value):
|
||||
operation = Operation.objects.get(pk=value)
|
||||
wproducts = WProduct.objects.filter(ow_wproduct__operation=value)
|
||||
step = operation.step
|
||||
if wproducts.exists():
|
||||
subplans = WpmServies.get_subplans_queryset_from_wproducts(wproducts)
|
||||
else:
|
||||
subplans = WpmServies.get_subplans_queyset_from_step(operation.step)
|
||||
return queryset.filter(subproduction_plan__in=subplans)
|
||||
subplans = WpmServies.get_subplans_queyset_from_step(step)
|
||||
queryset = queryset.filter(subproduction_plan__in=subplans)
|
||||
if step.type == Step.STEP_TYPE_NOM:
|
||||
queryset = queryset.exclude(material__type=Material.MA_TYPE_HALFGOOD)
|
||||
return queryset
|
|
@ -0,0 +1,23 @@
|
|||
# Generated by Django 3.2.9 on 2021-11-22 07:56
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pm', '0014_subproductionplan_number'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='subproductionplan',
|
||||
name='main_count_ok',
|
||||
field=models.IntegerField(default=0, verbose_name='合格数'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='subproductionprogress',
|
||||
name='count_ok',
|
||||
field=models.IntegerField(default=0, verbose_name='合格数量'),
|
||||
),
|
||||
]
|
|
@ -56,6 +56,7 @@ class SubProductionPlan(CommonAModel):
|
|||
main_product = models.ForeignKey(Material, verbose_name='主要产品', on_delete=models.CASCADE, null=True, blank=True)
|
||||
main_count = models.IntegerField('应产出数', default=0)
|
||||
main_count_real = models.IntegerField('实际产出数', default=0)
|
||||
main_count_ok = models.IntegerField('合格数', default=0)
|
||||
|
||||
steps = models.JSONField('工艺步骤', default=list)
|
||||
|
||||
|
@ -80,3 +81,4 @@ class SubProductionProgress(BaseModel):
|
|||
count = models.IntegerField('应出入数')
|
||||
count_pick = models.IntegerField('实际领用数', default=0)
|
||||
count_real = models.IntegerField('实际消耗/产出数', default=0)
|
||||
count_ok = models.IntegerField('合格数量', default=0)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
from django_filters import rest_framework as filters
|
||||
from apps.mtm.models import Step
|
||||
from apps.mtm.models import Material, Step
|
||||
|
||||
from apps.wpm.services import WpmServies
|
||||
from .models import Operation, WMaterial, WProduct
|
||||
|
@ -19,7 +19,5 @@ class WMaterialFilterSet(filters.FilterSet):
|
|||
subplans = WpmServies.get_subplans_queryset_from_wproducts(wproducts)
|
||||
else:
|
||||
subplans = WpmServies.get_subplans_queyset_from_step(step)
|
||||
queryset = queryset.filter(subproduction_plan__in=subplans)
|
||||
# if step.type == Step.STEP_TYPE_NOM:
|
||||
# queryset = queryset.filter()
|
||||
queryset = queryset.filter(subproduction_plan__in=subplans).exclude(material__type=Material.MA_TYPE_HALFGOOD)
|
||||
return queryset
|
|
@ -0,0 +1,19 @@
|
|||
# Generated by Django 3.2.9 on 2021-11-22 07:56
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wpm', '0019_auto_20211122_1110'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='operationwproduct',
|
||||
name='wproduct',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ow_wproduct', to='wpm.wproduct', verbose_name='关联半成品'),
|
||||
),
|
||||
]
|
|
@ -326,12 +326,13 @@ class OperationMaterialCreate1Serailizer(serializers.ModelSerializer):
|
|||
class Meta:
|
||||
model = OperationMaterial
|
||||
fields = ['operation', 'wmaterial', 'count']
|
||||
|
||||
|
||||
def create(self, validated_data):
|
||||
wmaterial = validated_data['wmaterial']
|
||||
validated_data['material'] = wmaterial.material
|
||||
validated_data['subproduction_plan'] = wmaterial.subproduction_plan
|
||||
validated_data['batch'] = wmaterial.batch
|
||||
validated_data['type'] = SubprodctionMaterial.SUB_MA_TYPE_IN
|
||||
return super().create(validated_data)
|
||||
|
||||
class OperationMaterialCreate2Serailizer(serializers.ModelSerializer):
|
||||
|
@ -344,6 +345,7 @@ class OperationMaterialCreate2Serailizer(serializers.ModelSerializer):
|
|||
subproduction_progress = validated_data['subproduction_progress']
|
||||
validated_data['material'] = subproduction_progress.material
|
||||
validated_data['subproduction_plan'] = subproduction_progress.subproduction_plan
|
||||
validated_data['type'] = SubprodctionMaterial.SUB_MA_TYPE_OUT
|
||||
return super().create(validated_data)
|
||||
|
||||
class OperationMaterialCreate3Serializer(serializers.ModelSerializer):
|
||||
|
@ -351,5 +353,9 @@ class OperationMaterialCreate3Serializer(serializers.ModelSerializer):
|
|||
class Meta:
|
||||
model = OperationMaterial
|
||||
fields = ['operation', 'material']
|
||||
|
||||
def create(self, validated_data):
|
||||
validated_data['type'] = SubprodctionMaterial.SUB_MA_TYPE_TOOL
|
||||
return super().create(validated_data)
|
||||
|
||||
|
|
@ -349,6 +349,19 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd
|
|||
"""
|
||||
提交车间操作重要
|
||||
"""
|
||||
op = self.get_object()
|
||||
# 更新物料消耗进度
|
||||
for i in OperationMaterial.objects.filter(operation=op, type=SubprodctionMaterial.SUB_MA_TYPE_IN):
|
||||
# 更新车间物料
|
||||
i_wmat = i.wmaterial
|
||||
i_wmat.count = i_wmat.count- i['count']
|
||||
i_wmat.save()
|
||||
# 更新子计划物料消耗情况
|
||||
sp = i_wmat.subproduction_plan
|
||||
sp.count_real = sp.count_real + i['count']
|
||||
sp.save()
|
||||
# 更新物料产出情况
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue