diff --git a/hb_server/apps/inm/models.py b/hb_server/apps/inm/models.py index 10248cd..e1e9f1a 100644 --- a/hb_server/apps/inm/models.py +++ b/hb_server/apps/inm/models.py @@ -75,8 +75,8 @@ class FIFOItem(BaseModel): """ 出入库详细条目 """ - is_tested = models.BooleanField('是否已检测', default=False) - is_testok = models.BooleanField('是否检测合格', default=False) + is_tested = models.BooleanField('是否已检验', default=False) + is_testok = models.BooleanField('是否检验合格', default=False) warehouse = models.ForeignKey(WareHouse, on_delete=models.CASCADE, verbose_name='仓库') material = models.ForeignKey(Material, verbose_name='物料类型', on_delete=models.CASCADE) count = models.PositiveIntegerField('数量', default=0) diff --git a/hb_server/apps/inm/views.py b/hb_server/apps/inm/views.py index 5ef42dc..109feb6 100644 --- a/hb_server/apps/inm/views.py +++ b/hb_server/apps/inm/views.py @@ -87,14 +87,14 @@ class FIFOItemViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet): @action(methods=['post'], detail=False, perms_map={'post':'*'}, serializer_class=InmTestRecordCreateSerializer) def test(self, request, pk=None): """ - 检测 + 检验 """ serializer = InmTestRecordCreateSerializer(data=request.data) serializer.is_valid(raise_exception=True) vdata = serializer.validated_data record_data = vdata.pop('record_data') if 'is_testok' not in vdata: - raise APIException('未填写检测结论') + raise APIException('未填写检验结论') with transaction.atomic(): obj = serializer.save(create_by = self.request.user) tris = [] @@ -111,7 +111,7 @@ class FIFOItemViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet): tris.append(TestRecordItem(**m)) TestRecordItem.objects.bulk_create(tris) - # 如果检测合格 + # 如果检验合格 if obj.fifo_item: obj.fifo_item.is_testok = True if obj.is_testok else False obj.fifo_item.is_tested = True diff --git a/hb_server/apps/qm/models.py b/hb_server/apps/qm/models.py index 80a9cc1..a0368f8 100644 --- a/hb_server/apps/qm/models.py +++ b/hb_server/apps/qm/models.py @@ -86,4 +86,4 @@ class TestRecordItem(BaseModel): 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 + 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 1593b64..314fcd3 100644 --- a/hb_server/apps/qm/serializers.py +++ b/hb_server/apps/qm/serializers.py @@ -106,16 +106,15 @@ class TestRecordDetailSerializer(serializers.ModelSerializer): return super().to_representation(instance) class TestRecordUpdateSerializer(serializers.ModelSerializer): - record_data = TestRecordItemUpdateSerializer(source='item_test_record', many=True) + record_data = TestRecordItemUpdateSerializer(many=True) class Meta: model = TestRecord fields = ['is_testok', 'record_data'] def update(self, instance, validated_data): - with transaction.atomic(): - record_data = validated_data.pop('record_data') - for attr, value in validated_data.items(): - setattr(instance, attr, value) - instance.save() - self.record_data.save() - return instance + record_data = validated_data.pop('record_data') + for attr, value in validated_data.items(): + setattr(instance, attr, value) + instance.save() + self.record_data.save() + return instance diff --git a/hb_server/apps/qm/views.py b/hb_server/apps/qm/views.py index cbdcc8d..32d0334 100644 --- a/hb_server/apps/qm/views.py +++ b/hb_server/apps/qm/views.py @@ -50,7 +50,7 @@ class TestItemViewSet(CreateUpdateModelAMixin, ModelViewSet): class TestRecordViewSet(ListModelMixin, UpdateModelMixin, RetrieveModelMixin, DestroyModelMixin, GenericViewSet): """ - 检测记录 + 检验记录 """ perms_map = {'*': '*'} queryset = TestRecord.objects.select_related('fifo_item', 'form').prefetch_related('item_test_record').all() @@ -67,13 +67,19 @@ class TestRecordViewSet(ListModelMixin, UpdateModelMixin, RetrieveModelMixin, De return TestRecordUpdateSerializer return super().get_serializer_class() + def update(self, request, *args, **kwargs): + obj = self.get_object() + if obj.is_submited: + raise exceptions.APIException('该记录已提交不可编辑') + return super().update(request, *args, **kwargs) + def destroy(self, request, *args, **kwargs): obj = self.get_object() if obj.is_submited: raise exceptions.APIException('该记录已提交不可删除') return super().destroy(request, *args, **kwargs) - @action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=serializers.Serializer) + @action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=TestRecordUpdateSerializer) def submit(self, request, pk=None): obj = self.get_object() # 校验是否有未填项目 @@ -90,7 +96,7 @@ class TestRecordViewSet(ListModelMixin, UpdateModelMixin, RetrieveModelMixin, De # vdata = serializer.validated_data # record_data = vdata.pop('record_data') # if 'is_testok' not in vdata: - # raise APIException('未填写检测结论') + # raise APIException('未填写检验结论') # with transaction.atomic(): # obj = serializer.save(create_by = self.request.user) # tris = [] @@ -107,7 +113,7 @@ class TestRecordViewSet(ListModelMixin, UpdateModelMixin, RetrieveModelMixin, De # tris.append(TestRecordItem(**m)) # TestRecordItem.objects.bulk_create(tris) - # # 如果检测合格 + # # 如果检验合格 # if obj.fifo_item: # obj.fifo_item.is_testok = True if obj.is_testok else False # obj.fifo_item.is_tested = True diff --git a/hb_server/apps/wpm/serializers.py b/hb_server/apps/wpm/serializers.py index 6c05e9c..8ab6754 100644 --- a/hb_server/apps/wpm/serializers.py +++ b/hb_server/apps/wpm/serializers.py @@ -65,7 +65,7 @@ class PickSerializer(serializers.Serializer): if isLowLevel: iproducts = i.pop('iproducts') i['fifo'] = fifo - i['is_testok'] = True # 默认检测合格 + i['is_testok'] = True # 默认检验合格 i['subproduction_plan'] = sp fifoitem = FIFOItem.objects.create(**i) # 创建再下一个层级 diff --git a/hb_server/apps/wpm/services.py b/hb_server/apps/wpm/services.py index c58a1c8..9d56be0 100644 --- a/hb_server/apps/wpm/services.py +++ b/hb_server/apps/wpm/services.py @@ -39,7 +39,7 @@ class WpmServies(object): @classmethod def update_wproduct_by_test(cls, test:TestRecord, user:User): """ - 根据检测结果更新玻璃及相关状态 + 根据检验结果更新玻璃及相关状态 """ is_testok = test.is_testok wproduct = test.wproduct diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index 352cd97..f7938ca 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -223,7 +223,7 @@ class WProductViewSet(ListModelMixin, GenericViewSet): @transaction.atomic def test(self, request, pk=None): """ - 检测记录提交 + 检验记录提交 """ serializer = WpmTestRecordCreateSerializer(data=request.data) serializer.is_valid(raise_exception=True) @@ -234,7 +234,7 @@ class WProductViewSet(ListModelMixin, GenericViewSet): WProduct.WPR_ACT_STATE_TORETEST, WProduct.WPR_ACT_STATE_TOFINALTEST, WProduct.WPR_ACT_STATE_TOCOMBTEST]: raise exceptions.APIException('该产品当前状态不可检验') if 'is_testok' not in vdata: - raise exceptions.APIException('未填写检测结论') + raise exceptions.APIException('未填写检验结论') savedict = dict(create_by = self.request.user, material=wproduct.material, number=wproduct.number, subproduction_plan=wproduct.subproduction_plan, step=wproduct.step)