|
@@ -14,11 +14,10 @@ from apps.upload.models import Upload
|
|
|
from apps.log.models import BizLog
|
|
|
from apps.tenant import tenant_log
|
|
|
from apps.tenant.inspection_order.models import InspectionOrder
|
|
|
-from apps.WechatApplet.models import WechatApplet
|
|
|
from apps.wxapp.models import CustomerWechat
|
|
|
from .serializers import (RepairOrderSerializer, RepairOrderListSerializer,
|
|
|
RepairOrderDetailSerializer)
|
|
|
-from apps.tenant.employee.models import Employee
|
|
|
+from apps.tenant.employee.models import Employee,User
|
|
|
|
|
|
|
|
|
class RepairOrderDetailView(generics.RetrieveAPIView):
|
|
@@ -168,6 +167,31 @@ class RepairOrderViewSet(CustomModelViewSet):
|
|
|
return response_error(str(e))
|
|
|
return response_ok('成功取消挂起!')
|
|
|
|
|
|
+ @action(methods=['post'], detail=True)
|
|
|
+ def dispatch_employee(self, request, pk):
|
|
|
+ # 派工
|
|
|
+ try:
|
|
|
+ user_ids = request.data.get('user_id')
|
|
|
+ if not user_ids:
|
|
|
+ return response_error('请选择维修工人!')
|
|
|
+ user = self.request.user
|
|
|
+ with transaction.atomic():
|
|
|
+ instance = RepairOrder.get_instance_by_id(pk, user.employee.tenant)
|
|
|
+ if not instance.status == settings.CHECKED:
|
|
|
+ return response_ok('当前报修工单状态非待派单状态,不能进行派单!')
|
|
|
+ instance.dispatch_repair_order(user, user_ids)
|
|
|
+ if user.id != user_ids:
|
|
|
+ user = User.objects.filter(id=user_ids).first()
|
|
|
+ CustomerWechat.sendDispatchMsg(user, instance.user.employee.name, instance.device_address,
|
|
|
+ instance.fault_des, instance.create_time, instance.no)
|
|
|
+ except CustomError as e:
|
|
|
+ return response_error(e.get_error_msg())
|
|
|
+ except Exception as e:
|
|
|
+ import traceback
|
|
|
+ traceback.print_exc()
|
|
|
+ return response_error(str(e))
|
|
|
+ return response_ok('派单完成!')
|
|
|
+
|
|
|
@action(methods=['get'], detail=True)
|
|
|
def rob_repair(self, request, pk):
|
|
|
# 抢单
|