提交
This commit is contained in:
67
backend/plugins/code_info/views/scan_data.py
Normal file
67
backend/plugins/code_info/views/scan_data.py
Normal file
@@ -0,0 +1,67 @@
|
||||
from dvadmin.utils.field_permission import FieldPermissionMixin
|
||||
from dvadmin.utils.serializers import CustomModelSerializer
|
||||
from dvadmin.utils.validator import CustomValidationError
|
||||
from dvadmin.utils.viewset import CustomModelViewSet
|
||||
from plugins.code_info.models import ScanData
|
||||
|
||||
|
||||
class ScanDataSerializer(CustomModelSerializer):
|
||||
"""
|
||||
扫码数据-序列化器
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
model = ScanData
|
||||
fields = "__all__"
|
||||
read_only_fields = ["id"]
|
||||
|
||||
class CreateScanDataSerializer(CustomModelSerializer):
|
||||
"""
|
||||
扫码数据-序列化器
|
||||
"""
|
||||
|
||||
def create(self, validated_data):
|
||||
code = validated_data.get("code")
|
||||
print(code)
|
||||
code_list = code.split("/")
|
||||
if len(code_list) == 5:
|
||||
validated_data["product_code"] = code_list[0]
|
||||
validated_data["supplier_code"] = code_list[1]
|
||||
validated_data["production_batch"] = code_list[2]
|
||||
validated_data["product_serial_number"] = code_list[3]
|
||||
validated_data["version_number"] = code_list[4]
|
||||
validated_data["shift"] = self.request.user.description
|
||||
instance = super().create(validated_data)
|
||||
# 1.格式错误
|
||||
if len(code_list) != 5:
|
||||
instance.status = 2
|
||||
instance.save()
|
||||
raise CustomValidationError("数据格式错误")
|
||||
# 2.查询数据是否已存在数据库
|
||||
print("ScanData.objects.filter(code=code, status=1)",ScanData.objects.filter(code=code, status=1))
|
||||
if ScanData.objects.filter(code=code, status=1).exclude(id=instance.id).exists():
|
||||
instance.status = 0
|
||||
instance.save()
|
||||
raise CustomValidationError("重复扫码")
|
||||
return instance
|
||||
|
||||
|
||||
class Meta:
|
||||
model = ScanData
|
||||
fields = "__all__"
|
||||
read_only_fields = ["id"]
|
||||
|
||||
|
||||
class ScanDataViewSet(CustomModelViewSet, FieldPermissionMixin):
|
||||
"""
|
||||
扫码数据接口
|
||||
list:查询
|
||||
create:新增
|
||||
update:修改
|
||||
retrieve:单例
|
||||
destroy:删除
|
||||
"""
|
||||
queryset = ScanData.objects.filter(status=1)
|
||||
serializer_class = ScanDataSerializer
|
||||
create_serializer_class = CreateScanDataSerializer
|
||||
extra_filter_class = []
|
||||
Reference in New Issue
Block a user