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 import models
from django.db.models.base import Model from django.db.models.base import Model
import django.utils.timezone as timezone 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') operation = models.ForeignKey(Operation, verbose_name='关联的生产操作', on_delete=models.CASCADE, related_name='or_operation')
is_filled = models.BooleanField('是否填写', default=True) is_filled = models.BooleanField('是否填写', default=True)
@ -112,5 +113,5 @@ class OperationRecordItem(BaseModel):
class OperationEquip(BaseModel): class OperationEquip(BaseModel):
operation = models.ForeignKey(Operation, verbose_name='关联操作', on_delete=models.CASCADE, related_name='oe_operation') 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) remark = models.TextField('备注', null=True, blank=True)

View File

@ -1,5 +1,6 @@
from rest_framework import serializers, exceptions from rest_framework import serializers, exceptions
from rest_framework.serializers import ModelSerializer from rest_framework.serializers import ModelSerializer
from apps.em.models import Equipment
from apps.em.serializers import EquipmentSimpleSerializer from apps.em.serializers import EquipmentSimpleSerializer
from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, MaterialBatch, WareHouse from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, MaterialBatch, WareHouse
from apps.inm.signals import update_inm from apps.inm.signals import update_inm
@ -19,7 +20,7 @@ class PickHalfSerializer(serializers.Serializer):
id = serializers.PrimaryKeyRelatedField(queryset=SubProductionProgress.objects.all(), label='子计划进度ID') id = serializers.PrimaryKeyRelatedField(queryset=SubProductionProgress.objects.all(), label='子计划进度ID')
wproducts = serializers.ListField(child=serializers.PrimaryKeyRelatedField(queryset=WProduct.objects.all(), label='半成品ID'), wproducts = serializers.ListField(child=serializers.PrimaryKeyRelatedField(queryset=WProduct.objects.all(), label='半成品ID'),
required=False) # 从半成品表里直接修改状态 required=False) # 从半成品表里直接修改状态
class PickDetailSerializer(serializers.Serializer): class PickDetailSerializer(serializers.Serializer):
material = serializers.PrimaryKeyRelatedField(queryset=Material.objects.all(), label="物料ID") material = serializers.PrimaryKeyRelatedField(queryset=Material.objects.all(), label="物料ID")
batch = serializers.CharField(label='物料批次', allow_blank=True) batch = serializers.CharField(label='物料批次', allow_blank=True)
@ -143,21 +144,21 @@ class OperationDetailSerializer(serializers.ModelSerializer):
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)
step_ = StepSimpleSerializer(source='step', read_only=True) step_ = StepSimpleSerializer(source='step', read_only=True)
wproduct_count = serializers.SerializerMethodField() wproduct_ = serializers.SerializerMethodField()
equip_count = serializers.SerializerMethodField() equip_ = serializers.SerializerMethodField()
record_count = serializers.SerializerMethodField() record_ = serializers.SerializerMethodField()
class Meta: class Meta:
model = Operation model = Operation
fields = '__all__' fields = '__all__'
def get_wproduct_count(self, obj): def get_wproduct_(self, obj):
return obj.ow_operation.count() return WProduct.objects.filter(ow_wproduct__operation=obj).values('id', 'number')
def get_equip_count(self, obj): def get_equip_(self, obj):
return obj.oe_operation.count() return EquipmentSimpleSerializer(instance=Equipment.objects.filter(oe_equip__operation=obj), many=True).data
def get_record_count(self, obj): def get_record_(self, obj):
return obj.or_operation.count() return RecordFormSimpleSerializer(instance=RecordForm.objects.filter(or_form__operation=obj), many=True).data
class OperationCreateSerializer(serializers.Serializer): class OperationCreateSerializer(serializers.Serializer):
""" """