|
@@ -1,6 +1,7 @@
|
|
# coding=utf-8
|
|
# coding=utf-8
|
|
from django.conf import settings
|
|
from django.conf import settings
|
|
from django.db import transaction
|
|
from django.db import transaction
|
|
|
|
+from django.db.models import Q
|
|
from rest_framework import generics
|
|
from rest_framework import generics
|
|
from rest_framework.views import APIView
|
|
from rest_framework.views import APIView
|
|
from rest_framework.decorators import action
|
|
from rest_framework.decorators import action
|
|
@@ -49,13 +50,21 @@ class RepairOrderCountView(APIView):
|
|
return response_ok({
|
|
return response_ok({
|
|
'NOT_CHECKED_COUNT':0,
|
|
'NOT_CHECKED_COUNT':0,
|
|
'CHECKED_COUNT':0,
|
|
'CHECKED_COUNT':0,
|
|
|
|
+ 'USER_NOT_CHECKED_COUNT': 0,
|
|
|
|
+ 'USER_CHECKED_COUNT': 0,
|
|
'APPRAISE_COUNT': 0,
|
|
'APPRAISE_COUNT': 0,
|
|
|
|
+ 'FINISH':0,
|
|
|
|
+ 'DISPATCH':0,
|
|
})
|
|
})
|
|
queryset = RepairOrder.objects.filter(delete=False, tenant=self.request.user.employee.tenant)
|
|
queryset = RepairOrder.objects.filter(delete=False, tenant=self.request.user.employee.tenant)
|
|
return response_ok({
|
|
return response_ok({
|
|
'NOT_CHECKED_COUNT':queryset.filter(status__lte=settings.CHECKED).count(),
|
|
'NOT_CHECKED_COUNT':queryset.filter(status__lte=settings.CHECKED).count(),
|
|
- 'CHECKED_COUNT':queryset.filter(status=settings.CHECKED).count(),
|
|
|
|
|
|
+ 'CHECKED_COUNT':queryset.filter(status=settings.CHECKED,).count(),
|
|
|
|
+ 'USER_NOT_CHECKED_COUNT':queryset.filter(status=settings.NOT_CHECKED,user = request.user).count(),
|
|
|
|
+ 'USER_CHECKED_COUNT':queryset.filter(status=settings.CHECKED,user = request.user).count(),
|
|
'APPRAISE_COUNT': queryset.filter(status=settings.APPRAISE, user = request.user).count(),
|
|
'APPRAISE_COUNT': queryset.filter(status=settings.APPRAISE, user = request.user).count(),
|
|
|
|
+ 'FINISH':queryset.filter(status=settings.FINISH, user = request.user).count(),
|
|
|
|
+ 'DISPATCH':queryset.filter(status=settings.DISPATCH, user = request.user).count(),
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
@@ -66,6 +75,10 @@ class RepairOrderAllView(generics.ListAPIView):
|
|
|
|
|
|
def filter_queryset(self, queryset):
|
|
def filter_queryset(self, queryset):
|
|
queryset = queryset.filter(tenant=self.request.user.employee.tenant)
|
|
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))
|
|
|
|
+ elif self.request.user.is_repair():
|
|
|
|
+ queryset = queryset.filter(user=self.request.user)
|
|
f = RepairOrderFilter(self.request.GET, queryset=queryset)
|
|
f = RepairOrderFilter(self.request.GET, queryset=queryset)
|
|
return f.qs
|
|
return f.qs
|
|
|
|
|
|
@@ -102,9 +115,9 @@ class RepairOrderViewSet(CustomModelViewSet):
|
|
super(RepairOrderViewSet, self).perform_create(serializer)
|
|
super(RepairOrderViewSet, self).perform_create(serializer)
|
|
instance = serializer.instance
|
|
instance = serializer.instance
|
|
# 发送微信通知
|
|
# 发送微信通知
|
|
- emplees = Employee.objects.filter(tenant=instance.tenant, type=Employee.ADMIN)
|
|
|
|
|
|
+ emplees = Employee.objects.filter(tenant=instance.tenant, type__in=[Employee.ADMIN, Employee.SUPER])
|
|
for emp in emplees:
|
|
for emp in emplees:
|
|
- CustomerWechat.sendWaitCheckMsg(emp.user, instance.user.employee.name, instance.device_address,
|
|
|
|
|
|
+ CustomerWechat.sendWaitCheckMsg(emp.user, instance.name, instance.device_address,
|
|
instance.fault_des, instance.no)
|
|
instance.fault_des, instance.no)
|
|
validated_data = serializer.validated_data
|
|
validated_data = serializer.validated_data
|
|
tenant_log(self.request.user.employee, BizLog.INSERT, u'添加报修工单[%s],id=%d' % (instance.name, instance.id),
|
|
tenant_log(self.request.user.employee, BizLog.INSERT, u'添加报修工单[%s],id=%d' % (instance.name, instance.id),
|
|
@@ -119,6 +132,16 @@ class RepairOrderViewSet(CustomModelViewSet):
|
|
return response_ok(upload.id)
|
|
return response_ok(upload.id)
|
|
return response_error('上传失败,请重新上传!')
|
|
return response_error('上传失败,请重新上传!')
|
|
|
|
|
|
|
|
+ @action(methods=['post'], detail=False)
|
|
|
|
+ def upload_voice(self, request):
|
|
|
|
+ file = self.request.FILES.get('file')
|
|
|
|
+ time = self.request.POST.get('time')
|
|
|
|
+ user = self.request.user
|
|
|
|
+ upload = Upload.objects._addnew_voice(user.employee.tenant, user, Upload.REPAIR_VOICE, file, time)
|
|
|
|
+ if upload:
|
|
|
|
+ return response_ok(upload.id)
|
|
|
|
+ return response_error('上传失败,请重新上传!')
|
|
|
|
+
|
|
@action(methods=['get'], detail=True)
|
|
@action(methods=['get'], detail=True)
|
|
def check(self, request, pk):
|
|
def check(self, request, pk):
|
|
# 审核
|
|
# 审核
|