wushaodong 4 år sedan
förälder
incheckning
a6fa0d0e53

+ 3 - 0
apps/account/models.py

@@ -112,6 +112,9 @@ class User(AbstractBaseUser, PermissionsMixin):
             return True
         return False
 
+    def get_name(self):
+        return self.employee.name
+
     def change_password(self, new_password, confirm_password, old_password):
         if new_password != confirm_password:
             raise CustomError(u'两次输入的密码不一致, 请检查')

+ 12 - 0
apps/tenant/device/serializers.py

@@ -8,6 +8,18 @@ from .models import *
 class DeviceSerializer(serializers.ModelSerializer):
     create_user_text = serializers.CharField(source='create_user.employee.name', read_only=True)
     status_text = serializers.CharField(source='get_status_display', read_only=True)
+    repaire_user_text = serializers.SerializerMethodField()
+
+    def get_repaire_user_text(self, obj):
+        if obj.status == DeviceModel.FINE:
+            return ''
+        from apps.tenant.repair_order.models import RepairOrder
+        order = RepairOrder.objects.filter(device=obj, status__in=[RepairOrder.DISPATCH,RepairOrder.HANG_UP,
+                                               RepairOrder.TURN_EMPLOYEE,RepairOrder.CANCEL_HANG_UP,]).first()
+        if order:
+            return order.repair_users.get_name()
+        else:
+            return ''
 
     class Meta:
         model = DeviceModel

+ 1 - 0
apps/tenant/repair_order/filters.py

@@ -8,6 +8,7 @@ class RepairOrderFilter(django_filters.FilterSet):
     no = django_filters.CharFilter(field_name='no', lookup_expr='icontains')
     status = django_filters.CharFilter(method='query_status')
     device_name = django_filters.CharFilter(field_name='device__name', lookup_expr='icontains')
+    device_id = django_filters.CharFilter(field_name='device_id')
 
     class Meta:
         model = RepairOrder

+ 1 - 0
apps/tenant/repair_order/models.py

@@ -21,6 +21,7 @@ class RepairOrder(models.Model):
         (REPAIR_ORDER, '报修工单'),
         (INSPECTION_ORDER, '巡检转报修工单')
     )
+
     NOT_CHECKED = 1
     CHECKED = 2
     DISPATCH = 3

+ 1 - 1
apps/wxapp/repair_order/views.py

@@ -82,7 +82,7 @@ class RepairOrderAllView(generics.ListAPIView):
     def filter_queryset(self, queryset):
         queryset = queryset.filter(tenant=self.request.user.employee.tenant)
         if self.request.user.is_employee():
-            #维修中心
+            #检修人 维修中心
             queryset = queryset.filter(Q(repair_users=self.request.user) | Q(user=self.request.user) | Q(repair_users__isnull=True))
         elif self.request.user.is_repair():
             queryset = queryset.filter(user=self.request.user)