WorkOrderMistakeService.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Services;
  3. use App\WorkOrder;
  4. use App\WorkOrderDetail;
  5. /**
  6. * 处理 错漏发 工单
  7. * Class WorkOrderMistakeService
  8. * @package App\Services
  9. */
  10. class WorkOrderMistakeService
  11. {
  12. /**
  13. * @var WorkOrderLogService $logService
  14. * @var WorkOrderDetailService $detailService
  15. * @var OrderIssueTypeService $issueTypeService
  16. * @var OrderService $orderService
  17. * @var WorkOrderService $workOrderService
  18. */
  19. private $logService;
  20. private $detailService;
  21. private $issueTypeService;
  22. private $orderService;
  23. private $workOrderService;
  24. public function __construct()
  25. {
  26. $this->logService = app('WorkOrderLogService');
  27. $this->detailService = app('WorkOrderDetailService');
  28. $this->issueTypeService = app('OrderIssueTypeService');
  29. $this->orderService = app('OrderService');
  30. $this->workOrderService = app('WorkOrderService');
  31. }
  32. /*
  33. * 错漏发处理流程
  34. * 1:创建错漏发工单
  35. * 2:宝时审核商品数量
  36. * 3:商家进行处理结果填充
  37. */
  38. public function store($params)
  39. {
  40. $issueType = $this->issueTypeService->firstOrCreate(['name' => '错漏发']);
  41. $order = $this->orderService->first(['code' => $params['order_no']]);
  42. $workOrder = $this->workOrderService->createAndNotification($order, $issueType, $params['remark'] ?? '');
  43. $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
  44. $this->logService->createLog($detail, '创建', '创建');
  45. $workOrder->changeStatus('宝时处理');
  46. $detail->changeStatus('宝时处理');
  47. }
  48. public function baoShiReview(WorkOrderDetail $detail,$params)
  49. {
  50. $this->detailService->updateDetail($detail,$params);
  51. $detail->changeStatus('待货主完结');
  52. $detail->workOrder->clearWorkOrderStatus();
  53. $detail->workOrder->changeStatus('待货主完结');
  54. $this->logService->createLog($detail, '处理', '承运商处理');
  55. }
  56. public function ownerReviewAndEnd(WorkOrderDetail $detail,$params)
  57. {
  58. $this->detailService->updateDetail($detail,$params);
  59. $this->logService->createLog($detail, '处理', '货主处理');
  60. $this->logService->createLog($detail, '完结', '货主完结');
  61. $detail->changeStatus('完成');
  62. $detail->workOrder->changeStatus('完成');
  63. $this->detailService->endDetail($detail);
  64. }
  65. }