feat: mtask serializer增加mlogs

This commit is contained in:
caoqianming 2023-11-14 13:47:49 +08:00
parent 53ca8f1742
commit a591abab8a
5 changed files with 42 additions and 4 deletions

View File

@ -85,3 +85,8 @@ class Mtask(CommonADModel):
'utask', 'mgroup__process__sort', 'create_time'
)
return Mtask.objects.none()
@property
def mlogs(self):
from apps.wpm.models import Mlog
return Mlog.objects.filter(mtask=self)

View File

@ -1,15 +1,16 @@
from rest_framework import serializers
from rest_framework.exceptions import ValidationError
from apps.mtm.serializers import MaterialSerializer
from apps.mtm.serializers import MaterialSimpleSerializer
from apps.pm.models import Mtask, Utask
from apps.sam.models import OrderItem
from apps.utils.serializers import CustomModelSerializer
from apps.system.models import Dept
from apps.wpm.models import Mlog
class UtaskSerializer(CustomModelSerializer):
material_ = MaterialSerializer(source='material', read_only=True)
material_ = MaterialSimpleSerializer(source='material', read_only=True)
belong_dept = serializers.PrimaryKeyRelatedField(
queryset=Dept.objects.all(), required=False)
@ -30,9 +31,20 @@ class UtaskSerializer(CustomModelSerializer):
return super().update(instance, new_data)
class MlogSimpleSerializer(CustomModelSerializer):
shift_name = serializers.CharField(source='shift.name', read_only=True)
class Meta:
model = Mlog
fields = ['id', 'shift_name', 'count_use',
'count_ok', 'count_real', 'submit_time']
class MtaskSerializer(CustomModelSerializer):
material_out_ = MaterialSerializer(source='material_out', read_only=True)
material_out_ = MaterialSimpleSerializer(
source='material_out', read_only=True)
mgroup_name = serializers.CharField(source='mgroup.name', read_only=True)
mlogs = MlogSimpleSerializer(label='日志信息', many=True, required=False)
class Meta:
model = Mtask

View File

@ -120,6 +120,7 @@ class MtaskViewSet(CustomModelViewSet):
serializer_class = MtaskSerializer
filterset_class = MtaskFilter
select_related_fields = ['material_in', 'material_out', 'mgroup']
prefetch_related_fields = ['mlog_mtask']
ordering_fields = ['start_date', 'mgroup__process__sort']
ordering = ['-start_date', 'mgroup__process__sort', '-create_time']

View File

@ -0,0 +1,20 @@
# Generated by Django 3.2.12 on 2023-11-14 05:46
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('pm', '0014_mtask_peifen_kg'),
('wpm', '0030_alter_mlogb_mlog'),
]
operations = [
migrations.AlterField(
model_name='mlog',
name='mtask',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='mlog_mtask', to='pm.mtask', verbose_name='关联任务'),
),
]

View File

@ -87,7 +87,7 @@ class Mlog(CommonADModel):
生产日志
"""
mtask = models.ForeignKey(
Mtask, verbose_name='关联任务', on_delete=models.CASCADE, null=True, blank=True)
Mtask, verbose_name='关联任务', on_delete=models.CASCADE, null=True, blank=True, related_name='mlog_mtask')
mgroup = models.ForeignKey(
Mgroup, verbose_name='工段', on_delete=models.CASCADE, null=True, blank=True)
material_in = models.ForeignKey(