WorkOrderDamageService.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace App\Services;
  3. /**
  4. * 处理 破损 工单
  5. * Class WorkOrderDamageService
  6. * @package App\Services
  7. */
  8. class WorkOrderDamageService extends WorkOrderService
  9. {
  10. /**
  11. * @var WorkOrderLogService $logService
  12. * @var WorkOrderDetailService $detailService
  13. * @var OrderIssueTypeService $issueTypeService
  14. * @var OrderService $orderService
  15. */
  16. private $logService;
  17. private $detailService;
  18. private $issueTypeService;
  19. private $orderService;
  20. public function __construct()
  21. {
  22. parent::__construct();
  23. $this->logService = app('WorkOrderLogService');
  24. $this->detailService = app('WorkOrderDetailService');
  25. $this->issueTypeService = app('OrderIssueTypeService');
  26. $this->orderService = app('OrderService');
  27. }
  28. /*
  29. * 破损工单处理流程
  30. * 1:创建工单
  31. * 2:快递处理
  32. * 3: 宝时终审
  33. */
  34. public function store($params){
  35. $issueType = $this->issueTypeService->firstOrCreate(['name' => '破损']);
  36. $order = $this->orderService->first(['code' => $params['order_no']]);
  37. $workOrder = $this->createAndNotification($order, $issueType, $params['remark'] ?? '');
  38. $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
  39. $this->logService->createLog($detail, '创建', '创建工单');
  40. $workOrder->changeStatus('承运商处理');
  41. $detail->changeStatus('宝时处理');
  42. }
  43. public function logisticHandle($detail,$params)
  44. {
  45. $this->detailService->updateDetail($detail,$params);
  46. $detail->changeStatus('宝时终审');
  47. $detail->workOrder->clearWorkOrderStatus();
  48. $detail->workOrder->changeStatus('宝时终审');
  49. $this->logService->createLog($detail, '处理', '承运商处理');
  50. }
  51. public function baoShiReviewDamage($detail,$params)
  52. {
  53. $this->detailService->updateDetail($detail,$params);
  54. $this->logService->createLog($detail, '终审', '终审');
  55. $this->logService->createLog($detail, '完结', '完结');
  56. $detail->changeStatus('完成');
  57. $detail->workOrder->changeStatus('完成');
  58. $this->detailService->endDetail($detail);
  59. }
  60. }