From e64347c27c206442a63a3c1a420fcf2ae40c78a7 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 14 Dec 2021 15:04:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9testrecorditem=20=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=8F=8A=E5=AF=B9=E5=BA=94=E7=9A=84=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E5=8C=96=E6=8E=A5=E5=8F=A3=E5=8E=BB=E9=99=A4sort,need=5Fjudge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/mtm/models.py | 2 ++ hb_server/apps/qm/models.py | 3 +-- hb_server/apps/qm/serializers.py | 8 +++++++- hb_server/apps/qm/views.py | 4 ++++ hb_server/apps/wpm/serializers.py | 2 +- hb_server/apps/wpm/views.py | 3 +-- 6 files changed, 16 insertions(+), 6 deletions(-) diff --git a/hb_server/apps/mtm/models.py b/hb_server/apps/mtm/models.py index d4b20d2..7815711 100644 --- a/hb_server/apps/mtm/models.py +++ b/hb_server/apps/mtm/models.py @@ -143,6 +143,7 @@ class RecordFormField(CommonAModel): FIELD_SELECTS = 'selects' FIELD_TEXTAREA = 'textarea' FIELD_DRAW = 'draw' + FIELD_TABLE = 'table' FIELD_FROMSYSTEM = 'fromsystem' field_type_choices = ( ('string', '字符串'), @@ -157,6 +158,7 @@ class RecordFormField(CommonAModel): ('select', '单选下拉'), ('selects', '多选下拉'), ('textarea', '文本域'), + ('table', '表格'), ('draw', '绘图'), ) high_rule_choices = ( diff --git a/hb_server/apps/qm/models.py b/hb_server/apps/qm/models.py index 560b4a4..80a9cc1 100644 --- a/hb_server/apps/qm/models.py +++ b/hb_server/apps/qm/models.py @@ -83,8 +83,7 @@ class TestRecordItem(BaseModel): field_key = models.CharField('字段标识', max_length=50) field_type = models.CharField('字段类型', choices=RecordForm.type_choices, max_length=50) field_value = models.JSONField('录入值', default=dict, blank=True) - need_judge = models.BooleanField('是否需要判定', default=False) - sort = models.IntegerField('排序号', default=1) + is_hidden = models.BooleanField('是否隐藏', default=False) is_testok = models.BooleanField('是否合格', null=True, blank=True) is_testok_robot = models.BooleanField('自动判定的是否合格', null=True, blank=True) test_record = models.ForeignKey(TestRecord, verbose_name='关联的检测记录', on_delete=models.CASCADE, related_name='item_test_record') \ No newline at end of file diff --git a/hb_server/apps/qm/serializers.py b/hb_server/apps/qm/serializers.py index 8dc187b..352fa89 100644 --- a/hb_server/apps/qm/serializers.py +++ b/hb_server/apps/qm/serializers.py @@ -44,10 +44,16 @@ class TestRecordItemCreateSerializer(serializers.ModelSerializer): class TestRecordItemUpdateSerializer(serializers.ModelSerializer): class Meta: model = TestRecordItem - fields = ['id', 'field_value', 'is_testok'] + fields = ['id', 'field_value', 'is_testok', 'is_hidden'] class TestRecordItemSerializer(serializers.ModelSerializer): + need_judge = serializers.BooleanField(source='form_field__need_judge', read_only=True) + rule_expression = serializers.JSONField(source='form_field__rule_expression', read_only=True) + display_expression = serializers.JSONField(source='form_field__display_expression', read_only=True) + is_hidden = serializers.BooleanField(source='form_field__is_hidden', read_only=True) + help_text = serializers.CharField(source='form_field__help_text', read_only=True) + sort = serializers.IntegerField(source='form_field__sort', read_only=True) class Meta: model = TestRecordItem fields = '__all__' diff --git a/hb_server/apps/qm/views.py b/hb_server/apps/qm/views.py index 0e602e0..1d9fb36 100644 --- a/hb_server/apps/qm/views.py +++ b/hb_server/apps/qm/views.py @@ -76,6 +76,10 @@ class TestRecordViewSet(ListModelMixin, UpdateModelMixin, RetrieveModelMixin, De @action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=serializers.Serializer) def submit(self, request, pk=None): obj = self.get_object() + # 校验是否有未填项目 + if obj.type != TestRecord.TEST_PROCESS_RE: + if TestRecordItem.objects.filter(field_value__isnull=True, is_hidden=False).exists(): + raise exceptions.APIException('存在未填写项目') with transaction.atomic(): WpmServies.update_wproduct_by_test(obj, request.user) return Response() diff --git a/hb_server/apps/wpm/serializers.py b/hb_server/apps/wpm/serializers.py index 7553d57..6c05e9c 100644 --- a/hb_server/apps/wpm/serializers.py +++ b/hb_server/apps/wpm/serializers.py @@ -282,7 +282,7 @@ class OperationSubmitSerializer(serializers.Serializer): class WpmTestRecordItemCreateSerializer(serializers.ModelSerializer): class Meta: model = TestRecordItem - fields = ['form_field', 'field_value', 'is_testok'] + fields = ['form_field', 'field_value', 'is_testok', 'is_hidden'] class WpmTestRecordCreateSerializer(serializers.ModelSerializer): record_data = WpmTestRecordItemCreateSerializer(many=True) diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index 11a6c8b..352cd97 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -210,6 +210,7 @@ class WProductViewSet(ListModelMixin, GenericViewSet): o_dict[i['field_key']] = i['field_value'] for i in data['form_fields']: i['origin_value'] = o_dict[i['field_key']] if i['field_key'] in o_dict else None + i['is_hidden'] = o_dict[i['is_hidden']] if i['is_hidden'] in o_dict else False else: raise exceptions.APIException('原工序检验记录不存在') else: @@ -251,8 +252,6 @@ class WProductViewSet(ListModelMixin, GenericViewSet): m['field_name'] = form_field.field_name m['field_key'] = form_field.field_key m['field_type'] = form_field.field_type - m['sort'] = form_field.sort - m['need_judge'] = form_field.need_judge m['is_testok'] = m['is_testok'] if 'is_testok' in m else None m['test_record'] = obj tris.append(TestRecordItem(**m))