修改qm
This commit is contained in:
parent
5357a2d82a
commit
0158998ef9
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 3.2.6 on 2021-11-08 03:02
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('qm', '0004_auto_20211108_0951'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='testrecord',
|
||||||
|
name='record_data',
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='testrecorditem',
|
||||||
|
name='test_record',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='item_test_record', to='qm.testrecord', verbose_name='关联的检测记录'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -47,9 +47,7 @@ class TestRecord(CommonAModel):
|
||||||
"""
|
"""
|
||||||
检验记录
|
检验记录
|
||||||
"""
|
"""
|
||||||
|
|
||||||
form = models.ForeignKey('mtm.recordform', verbose_name='所用表格', on_delete=models.CASCADE)
|
form = models.ForeignKey('mtm.recordform', verbose_name='所用表格', on_delete=models.CASCADE)
|
||||||
record_data = models.JSONField('记录数据', default=dict, blank=True)
|
|
||||||
is_testok = models.BooleanField('是否合格', default=True)
|
is_testok = models.BooleanField('是否合格', default=True)
|
||||||
fifo_item = models.ForeignKey('inm.fifoitem', verbose_name='关联的出入库批次', on_delete=models.CASCADE, null=True, blank=True)
|
fifo_item = models.ForeignKey('inm.fifoitem', verbose_name='关联的出入库批次', on_delete=models.CASCADE, null=True, blank=True)
|
||||||
|
|
||||||
|
@ -65,4 +63,4 @@ class TestRecordItem(BaseModel):
|
||||||
field_value = models.JSONField('录入值', default=dict, blank=True)
|
field_value = models.JSONField('录入值', default=dict, blank=True)
|
||||||
need_judge = models.BooleanField('是否需要判定', default=False)
|
need_judge = models.BooleanField('是否需要判定', default=False)
|
||||||
is_testok = models.BooleanField('是否合格', default=True)
|
is_testok = models.BooleanField('是否合格', default=True)
|
||||||
test_record = models.ForeignKey(TestRecord, verbose_name='关联的检测记录', on_delete=models.CASCADE)
|
test_record = models.ForeignKey(TestRecord, verbose_name='关联的检测记录', on_delete=models.CASCADE, related_name='item_test_record')
|
|
@ -35,13 +35,18 @@ class AnalysisItemSerializer(serializers.ModelSerializer):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TestRecordItemSerializer(serializers.ModelSerializer):
|
class TestRecordItemCreateSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = TestRecordItem
|
model = TestRecordItem
|
||||||
fields = ['form_field', 'field_value']
|
fields = ['form_field', 'field_value']
|
||||||
|
|
||||||
|
class TestRecordItemSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = TestRecordItem
|
||||||
|
fields = '__all__'
|
||||||
|
|
||||||
class TestRecordCreateSerializer(serializers.ModelSerializer):
|
class TestRecordCreateSerializer(serializers.ModelSerializer):
|
||||||
record_data = TestRecordItemSerializer(many=True)
|
record_data = TestRecordItemCreateSerializer(many=True)
|
||||||
class Meta:
|
class Meta:
|
||||||
model = TestRecord
|
model = TestRecord
|
||||||
fields = ['form', 'record_data', 'is_testok', 'fifo_item']
|
fields = ['form', 'record_data', 'is_testok', 'fifo_item']
|
||||||
|
@ -59,21 +64,21 @@ class TestRecordListSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
class TestRecordDetailSerializer(serializers.ModelSerializer):
|
class TestRecordDetailSerializer(serializers.ModelSerializer):
|
||||||
form_ = RecordFormSimpleSerializer(source='form', read_only=True)
|
form_ = RecordFormSimpleSerializer(source='form', read_only=True)
|
||||||
record_data_ = serializers.SerializerMethodField()
|
record_data_ = TestRecordItemSerializer(source='item_test_record', read_only=True, many=True)
|
||||||
class Meta:
|
class Meta:
|
||||||
model = TestRecord
|
model = TestRecord
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def setup_eager_loading(queryset):
|
def setup_eager_loading(queryset):
|
||||||
queryset = queryset.select_related('form','fifo_detail')
|
queryset = queryset.select_related('form','fifo_item')
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def get_record_data_(self, obj):
|
# def get_record_data_(self, obj):
|
||||||
record_data = obj.record_data
|
# record_data = obj.record_data
|
||||||
all_fields = RecordFormField.objects.filter(form=obj.form, is_deletd=False).order_by('sort')
|
# all_fields = RecordFormField.objects.filter(form=obj.form, is_deletd=False).order_by('sort')
|
||||||
all_fields_l = RecordFormFieldSerializer(instance=all_fields, many=True).data
|
# all_fields_l = RecordFormFieldSerializer(instance=all_fields, many=True).data
|
||||||
for i in all_fields_l:
|
# for i in all_fields_l:
|
||||||
key = i['field_key']
|
# key = i['field_key']
|
||||||
i['field_value'] = record_data.get(key, None)
|
# i['field_value'] = record_data.get(key, None)
|
||||||
return all_fields_l
|
# return all_fields_l
|
|
@ -1,5 +1,5 @@
|
||||||
from apps.qm.serializers import StandardCreateUpdateSerializer, StandardSerializer, TestItemCreateUpdateSerializer, TestItemSerializer, TestRecordCreateSerializer, TestRecordDetailSerializer, TestRecordListSerializer
|
from apps.qm.serializers import StandardCreateUpdateSerializer, StandardSerializer, TestItemCreateUpdateSerializer, TestItemSerializer, TestRecordCreateSerializer, TestRecordDetailSerializer, TestRecordListSerializer
|
||||||
from apps.qm.models import Standard, TestItem, TestRecord
|
from apps.qm.models import Standard, TestItem, TestRecord, TestRecordItem
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from rest_framework.viewsets import ModelViewSet
|
from rest_framework.viewsets import ModelViewSet
|
||||||
from apps.system.mixins import CreateUpdateModelAMixin
|
from apps.system.mixins import CreateUpdateModelAMixin
|
||||||
|
@ -57,7 +57,22 @@ class TestRecordViewSet(ModelViewSet):
|
||||||
return super().get_serializer_class()
|
return super().get_serializer_class()
|
||||||
|
|
||||||
def perform_create(self, serializer):
|
def perform_create(self, serializer):
|
||||||
|
vdata = serializer.validated_data
|
||||||
obj = serializer.save(create_by = self.request.user)
|
obj = serializer.save(create_by = self.request.user)
|
||||||
|
tris = []
|
||||||
|
for m in vdata['record_data']: # 保存记录详情
|
||||||
|
form_field = m['form_field']
|
||||||
|
m['field_name'] = form_field.field_name
|
||||||
|
m['field_key'] = form_field.field_key
|
||||||
|
m['field_type'] = form_field.field_type
|
||||||
|
m['field_value'] = m['field_value']
|
||||||
|
m['sort'] = form_field.sort
|
||||||
|
m['need_judge'] = form_field.need_judge
|
||||||
|
m['is_testok'] = m['is_testok'] if 'is_testok' in m else True
|
||||||
|
m['test_record'] = obj
|
||||||
|
tris.append(TestRecordItem(**m))
|
||||||
|
TestRecordItem.objects.bulk_create(tris)
|
||||||
|
|
||||||
# 如果检测合格
|
# 如果检测合格
|
||||||
if obj.fifo_item:
|
if obj.fifo_item:
|
||||||
obj.fifo_item.is_testok = True if obj.is_testok else False
|
obj.fifo_item.is_testok = True if obj.is_testok else False
|
||||||
|
|
|
@ -178,7 +178,7 @@ class DoFormSubmit(CreateAPIView, GenericAPIView):
|
||||||
m['field_name'] = form_field.field_name
|
m['field_name'] = form_field.field_name
|
||||||
m['field_key'] = form_field.field_key
|
m['field_key'] = form_field.field_key
|
||||||
m['field_type'] = form_field.field_type
|
m['field_type'] = form_field.field_type
|
||||||
m['field_value'] = form_field.field_value
|
m['field_value'] = m['field_value']
|
||||||
m['sort'] = form_field.sort
|
m['sort'] = form_field.sort
|
||||||
m['wproduct_record'] = wr
|
m['wproduct_record'] = wr
|
||||||
wrds.append(WProductRecordItem(**m))
|
wrds.append(WProductRecordItem(**m))
|
||||||
|
|
Loading…
Reference in New Issue