operationlist接口返回设备、记录、玻璃详情

This commit is contained in:
caoqianming 2021-12-01 16:10:49 +08:00
parent bfa2805142
commit 12798d4217
3 changed files with 40 additions and 12 deletions

View File

@ -0,0 +1,26 @@
# Generated by Django 3.2.9 on 2021-12-01 08:08
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('mtm', '0040_material_piece_count'),
('em', '0009_auto_20210916_1108'),
('wpm', '0025_alter_wmaterial_count'),
]
operations = [
migrations.AlterField(
model_name='operationequip',
name='equip',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='oe_equip', to='em.equipment', verbose_name='生产设备'),
),
migrations.AlterField(
model_name='operationrecord',
name='form',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='or_form', to='mtm.recordform', verbose_name='所用的生产记录表格'),
),
]

View File

@ -1,3 +1,4 @@
import re
from django.db import models
from django.db.models.base import Model
import django.utils.timezone as timezone
@ -94,7 +95,7 @@ class OperationRecord(BaseModel):
"""
记录表格
"""
form = models.ForeignKey(RecordForm, verbose_name='所用的生产记录表格', on_delete=models.CASCADE)
form = models.ForeignKey(RecordForm, verbose_name='所用的生产记录表格', on_delete=models.CASCADE, related_name='or_form')
operation = models.ForeignKey(Operation, verbose_name='关联的生产操作', on_delete=models.CASCADE, related_name='or_operation')
is_filled = models.BooleanField('是否填写', default=True)
@ -112,5 +113,5 @@ class OperationRecordItem(BaseModel):
class OperationEquip(BaseModel):
operation = models.ForeignKey(Operation, verbose_name='关联操作', on_delete=models.CASCADE, related_name='oe_operation')
equip = models.ForeignKey(Equipment, verbose_name='生产设备', on_delete=models.CASCADE)
equip = models.ForeignKey(Equipment, verbose_name='生产设备', on_delete=models.CASCADE, related_name='oe_equip')
remark = models.TextField('备注', null=True, blank=True)

View File

@ -1,5 +1,6 @@
from rest_framework import serializers, exceptions
from rest_framework.serializers import ModelSerializer
from apps.em.models import Equipment
from apps.em.serializers import EquipmentSimpleSerializer
from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, MaterialBatch, WareHouse
from apps.inm.signals import update_inm
@ -143,21 +144,21 @@ class OperationDetailSerializer(serializers.ModelSerializer):
class OperationListSerializer(serializers.ModelSerializer):
create_by_ = UserSimpleSerializer(source='create_by', read_only=True)
step_ = StepSimpleSerializer(source='step', read_only=True)
wproduct_count = serializers.SerializerMethodField()
equip_count = serializers.SerializerMethodField()
record_count = serializers.SerializerMethodField()
wproduct_ = serializers.SerializerMethodField()
equip_ = serializers.SerializerMethodField()
record_ = serializers.SerializerMethodField()
class Meta:
model = Operation
fields = '__all__'
def get_wproduct_count(self, obj):
return obj.ow_operation.count()
def get_wproduct_(self, obj):
return WProduct.objects.filter(ow_wproduct__operation=obj).values('id', 'number')
def get_equip_count(self, obj):
return obj.oe_operation.count()
def get_equip_(self, obj):
return EquipmentSimpleSerializer(instance=Equipment.objects.filter(oe_equip__operation=obj), many=True).data
def get_record_count(self, obj):
return obj.or_operation.count()
def get_record_(self, obj):
return RecordFormSimpleSerializer(instance=RecordForm.objects.filter(or_form__operation=obj), many=True).data
class OperationCreateSerializer(serializers.Serializer):
"""