diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 02651205..73852028 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -238,6 +238,8 @@ class MlogSerializer(CustomModelSerializer): source='create_by.name', read_only=True) update_by_name = serializers.CharField( source='update_by.name', read_only=True) + material_in_ = MaterialSimpleSerializer( + source='material_in', read_only=True) material_out_ = MaterialSimpleSerializer( source='material_out', read_only=True) material_out_name = serializers.StringRelatedField( diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 40cc0f18..0731b76b 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -591,6 +591,8 @@ class MlogbwViewSet(CustomModelViewSet): def perform_create(self, serializer): ins:Mlogbw = serializer.save() mlogb:Mlogb = ins.mlogb + if mlogb.mlog.submit_time is not None: + raise ParseError('日志已提交不可修改') self.cal_mlogb_count(mlogb) # 如果是输入且输出追踪到个,需同步创建 material_in:Material = mlogb.material_in @@ -605,6 +607,8 @@ class MlogbwViewSet(CustomModelViewSet): @transaction.atomic def perform_destroy(self, instance): mlogb = instance.mlogb + if mlogb.mlog.submit_time is not None: + raise ParseError('日志已提交不可修改') instance.delete() self.cal_mlogb_count(mlogb) # 如果是输入且输出追踪到个,需同步创建 diff --git a/apps/wpmw/models.py b/apps/wpmw/models.py index 809089f7..d2f71a4b 100644 --- a/apps/wpmw/models.py +++ b/apps/wpmw/models.py @@ -30,6 +30,8 @@ class Wpr(BaseModel): elif number: try: ins = cls.objects.get(number=number) + if ins.wm or ins.wm: + raise ParseError("该物料编号已存在不可使用") except cls.DoesNotExist: ins = cls(number=number) diff --git a/apps/wpmw/views.py b/apps/wpmw/views.py index 968ea91d..ce7afb59 100644 --- a/apps/wpmw/views.py +++ b/apps/wpmw/views.py @@ -16,7 +16,7 @@ class WprViewSet(CustomListModelMixin, CustomGenericViewSet): prefetch_related_fields = ["defects"] queryset = Wpr.objects.all() serializer_class = WprSerializer - filter_fields = ["mb", "wm", "state", "material", "defects"] + filterset_fields = ["mb", "wm", "state", "material", "defects"] ordering = ["-create_time"] ordering_fields = ["number", "create_time", "update_time"] search_fields = ["number", "material__name", "material__model", "material__specification"] \ No newline at end of file