loustwo 4 лет назад
Родитель
Сommit
04d44e3fc2

+ 0 - 1
app/Http/Controllers/TestController.php

@@ -310,7 +310,6 @@ class TestController extends Controller
     }
 
     public function baoHandler(){
-//        dd(Auth::id());
         $service = new WorkOrderService();
         $service->timingTask();
     }

+ 51 - 32
app/Http/Controllers/WorkOrderCancelInterceptController.php

@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
 
 use App\Services\OrderService;
 use App\Services\WorkOrderCancelInterceptService;
+use App\WorkOrder;
 use App\WorkOrderDetail;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
@@ -21,7 +22,7 @@ class WorkOrderCancelInterceptController extends Controller
     public function __construct()
     {
         $this->service = app(WorkOrderCancelInterceptService::class);
-        $this->orderService = app(OrderService::class );
+        $this->orderService = app(OrderService::class);
     }
 
     public function storeApi(Request $request): array
@@ -36,7 +37,7 @@ class WorkOrderCancelInterceptController extends Controller
             $this->service->store($request->all());
             return ['success' => true];
         } catch (\Exception $e) {
-            return ['success' => false,'message' => $e->getMessage()];
+            return ['success' => false, 'message' => $e->getMessage()];
         }
     }
 
@@ -46,7 +47,7 @@ class WorkOrderCancelInterceptController extends Controller
         if (Gate::denies('订单管理-订单-生成工单'))
             return ['success' => false, 'message' => '没有对应权限'];
         $this->orderService->syncOrderByCodes($request->input('order_nos'));
-        if ($this->service->checkWorkOrders($request->input('order_nos'))){
+        if ($this->service->checkWorkOrders($request->input('order_nos'))) {
             return ['success' => false, 'message' => '当前订单已有相同类型的工单'];
         }
         $this->service->batchStore($request->all());
@@ -60,14 +61,21 @@ class WorkOrderCancelInterceptController extends Controller
      */
     public function logisticHandlerApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-承运商编辑'))
+        if (Gate::denies('订单管理-工单处理-承运商编辑')){
             return ['success' => false, 'message' => '没有对应权限'];
+        }
+
         $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) return ['success' => false,'message' => '参数异常'];
-        $this->service->logisticHandle($detail,$request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true,'data' => $workOrder];
+
+        if (!$detail) {
+            return ['success' => false, 'message' => '参数异常'];
+        }
+
+        $this->service->logisticHandle($detail, $request->all());
+
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
+        return ['success' => true, 'data' => $data];
     }
 
     /**
@@ -77,34 +85,43 @@ class WorkOrderCancelInterceptController extends Controller
      */
     public function logisticBatchHandlerApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-承运商编辑'))
+        if (Gate::denies('订单管理-工单处理-承运商编辑')){
             return ['success' => false, 'message' => '没有对应权限'];
-        $detail_ids = $request->input('detail_ids',[]);
+        }
+        $detail_ids = $request->input('detail_ids', []);
 
-        if (count($detail_ids) == 0)
-            return ['success' => false,'message' => '参数异常'];
+        if (count($detail_ids) == 0){
+            return ['success' => false, 'message' => '参数异常'];
+        }
 
         $details = WorkOrderDetail::query()->where('status', 3)->find($detail_ids);
-        if (count($details) < count($detail_ids))
-            return ['success' => false,'message' => '参数异常,刷新后重试'];
 
-        $this->service->logisticBatchHandler($details,$request->all());
-        $data = $this->service->getDefaultWith($details->map(function($item){
+        if (count($details) < count($detail_ids)){
+            return ['success' => false, 'message' => '参数异常,刷新后重试'];
+        }
+
+        $this->service->logisticBatchHandler($details, $request->all());
+
+        $data = WorkOrder::query()->defaultWith()->find($details->map(function ($item) {
             return $item->work_order_id;
-        }));
-        return ['success' => true,'data' => $data];
+        })->toArray());
+        return ['success' => true, 'data' => $data];
     }
 
     public function baoShiReviewApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-宝时编辑'))
+        if (Gate::denies('订单管理-工单处理-宝时编辑')) {
             return ['success' => false, 'message' => '没有对应权限'];
-        $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) return ['success' => false,'message' => '参数异常'];
-        $this->service->baoShiReview($detail,$request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true,'data' => $workOrder];
+        }
+        $detail = WorkOrderDetail::query()->find($request->input('detail_id'));
+        if (!$detail) {
+            return ['success' => false, 'message' => '参数异常'];
+        }
+        $this->service->baoShiReview($detail, $request->all());
+
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
+        return ['success' => true, 'data' => $data];
     }
 
     /**
@@ -114,8 +131,9 @@ class WorkOrderCancelInterceptController extends Controller
      */
     public function baoShiBatchReviewApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-宝时编辑'))
+        if (Gate::denies('订单管理-工单处理-宝时编辑')) {
             return ['success' => false, 'message' => '没有对应权限'];
+        }
         $detail_ids = $request->input('detail_ids', []);
 
         if (count($detail_ids) == 0) {
@@ -123,16 +141,17 @@ class WorkOrderCancelInterceptController extends Controller
         }
 
         $details = WorkOrderDetail::query()->where('status', '4')->find($detail_ids);
-
         if (count($details) < count($detail_ids)) {
             return ['success' => false, 'message' => '参数异常,请刷新页面重试'];
         }
 
         $this->service->baoShiBatchReview($details, $request->all());
-        $data = $this->service->getDefaultWith($details->map(function ($item) {
-            return $item->work_order_id;
-        }));
-        return ['success' => true,'data' => $data];
+
+        $data = WorkOrder::query()->defaultWith()->find($details->map(function ($detail) {
+            return $detail->work_order_id;
+        })->toArray());
+
+        return ['success' => true, 'data' => $data];
     }
 
 }

+ 25 - 22
app/Http/Controllers/WorkOrderCommoditiesController.php

@@ -6,7 +6,8 @@ use App\Services\WorkOrderCommoditiesService;
 use App\Services\WorkOrderDetailService;
 use App\Services\WorkOrderLogService;
 use App\Services\WorkOrderService;
- use Illuminate\Http\Request;
+use App\WorkOrder;
+use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
 
 class WorkOrderCommoditiesController extends Controller
@@ -22,12 +23,13 @@ class WorkOrderCommoditiesController extends Controller
     private $logService;
     private $workOrderService;
 
-    public function __construct()
+    public function __construct(WorkOrderCommoditiesService $service, WorkOrderDetailService $detailService,
+                                WorkOrderLogService $logService, WorkOrderService $workOrderService)
     {
-        $this->service = app(WorkOrderCommoditiesService::class);
-        $this->detailService = app(WorkOrderDetailService::class);
-        $this->logService = app(WorkOrderLogService::class);
-        $this->workOrderService = app(WorkOrderService::class);
+        $this->service = $service;
+        $this->detailService = $detailService;
+        $this->logService = $logService;
+        $this->workOrderService = $workOrderService;
     }
 
     /**
@@ -42,13 +44,15 @@ class WorkOrderCommoditiesController extends Controller
         }
         $workOrder = $this->service->find($request->input('id'));
 
-        if (!$workOrder) return ['success' => false, 'message' => '参数异常'];
+        if (!$workOrder) {
+            return ['success' => false, 'message' => '参数异常'];
+        }
 
-        $this->service->updateWorkOrderCommoditiesByJsonArray($workOrder, $request->input('commodities'),'货主已处理');
+        $this->service->updateWorkOrderCommoditiesByJsonArray($workOrder, $request->input('commodities'));
 
-        if(($workOrder->issueType->name ?? '') == '快递丢件'){
-            $this->logService->createLog($workOrder,'处理','货主填充数据');
-            $workOrder->changeStatus('宝时处理');
+        if (($workOrder->issueType->name ?? '') == '快递丢件') {
+            $this->logService->createLog($workOrder, '处理', '货主填充数据');
+            $workOrder->update(['status' => WorkOrder::$BAO_SHI_HANDLER_STATUS]);
         }
         $workOrder->loadDefaultWith();
         return ['success' => true, 'data' => $workOrder];
@@ -71,15 +75,15 @@ class WorkOrderCommoditiesController extends Controller
 
         $this->service->updateWorkOrderCommoditiesByJsonArray($detail, $request->input('commodities'));
 
-
         $issueType = $workOrder->issueType->name ?? '';
-        if (in_array($issueType,['破损','快递异常'])){
-            $workOrder->changeStatus('宝时终审');
-            $detail->changeStatus('宝时终审');
-            $this->logService->createLog($detail,'处理','承运商处理');
-        } else if (in_array($issueType,['拦截','信息更改'])){
-            $workOrder->changeStatus('完成');
-            $this->logService->createLog($detail,'完结','承运商完成');
+
+        if (in_array($issueType, ['破损', '快递异常'])) {
+            $workOrder->update(['status' => WorkOrder::$BAO_SHI_REVIEW_STATUS]);
+            $detail->update(['status' => WorkOrder::$BAO_SHI_REVIEW_STATUS]);
+            $this->logService->createLog($detail, '处理', '承运商处理');
+        } else if (in_array($issueType, ['拦截', '信息更改'])) {
+            $workOrder->update(['status' => WorkOrder::$END_STATUS]);
+            $this->logService->createLog($detail, '完结', '承运商完成');
             $this->detailService->endDetail($detail);
         }
 
@@ -105,15 +109,14 @@ class WorkOrderCommoditiesController extends Controller
 
         $issue_type = $workOrder->issueType->name ?? '';
 
-        $this->service->updateWorkOrderCommoditiesByJsonArray($detail, $request->input('commodities'),'完结',true);
+        $this->service->updateWorkOrderCommoditiesByJsonArray($detail, $request->input('commodities'), '完结', true);
 
         if ($issue_type == '错漏发') {
-            $workOrder->changeStatus('完成');
+            $workOrder->update(['status' => WorkOrder::$END_STATUS]);
             $this->detailService->endDetail($detail);
         }
 
         $workOrder->loadDefaultWith();
-
         return ['success' => true, 'data' => $workOrder];
     }
 }

+ 18 - 13
app/Http/Controllers/WorkOrderDamageController.php

@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
 
 use App\Services\OrderService;
 use App\Services\WorkOrderDamageService;
+use App\WorkOrder;
 use App\WorkOrderDetail;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
@@ -51,24 +52,29 @@ class WorkOrderDamageController extends Controller
         if (Gate::denies('订单管理-工单处理-货主编辑'))
             return ['success' => false, 'message' => '没有对应权限'];
         $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) return ['success' => false,'message' => '参数异常'];
+        if (!$detail) return ['success' => false,'message' => '参数异常'];
         else if(in_array($detail->status,['完成','宝时终审'])) return ['success' => false,'message' => '处理失败,刷新当前页面重试'];
         $this->service->ownerEdit($detail,$request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true,'data' => $workOrder];
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+        return ['success' => true,'data' => $data];
     }
 
     public function logisticHandleApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-承运商编辑'))
+        if (Gate::denies('订单管理-工单处理-承运商编辑')){
             return ['success' => false, 'message' => '没有对应权限'];
+        }
+
         $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) return ['success' => false,'message' => '参数异常'];
+
+        if (!$detail ) {
+            return ['success' => false,'message' => '参数异常'];
+        }
         $this->service->logisticHandle($detail,$request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true,'data' => $workOrder];
+
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
+        return ['success' => true,'data' => $data];
     }
 
     public function baoShiReviewApi(Request $request): array
@@ -76,11 +82,10 @@ class WorkOrderDamageController extends Controller
         if (Gate::denies('订单管理-工单处理-宝时编辑'))
             return ['success' => false, 'message' => '没有对应权限'];
         $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) return ['success' => false,'message' => '参数异常'];
+        if (!$detail) return ['success' => false,'message' => '参数异常'];
         $this->service->baoShiReview($detail,$request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true,'data' => $workOrder];
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+        return ['success' => true,'data' => $data];
     }
 
 

+ 45 - 22
app/Http/Controllers/WorkOrderExpressAbnormalController.php

@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
 
 use App\Services\OrderService;
 use App\Services\WorkOrderExpressAbnormalService;
+use App\WorkOrder;
 use App\WorkOrderDetail;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
@@ -16,6 +17,7 @@ class WorkOrderExpressAbnormalController extends Controller
      */
     private $service;
     private $orderService;
+
     public function __construct()
     {
         $this->service = app('WorkOrderExpressAbnormalService');
@@ -24,14 +26,17 @@ class WorkOrderExpressAbnormalController extends Controller
 
     public function storeApi(Request $request): array
     {
-        if (Gate::denies('订单管理-订单-生成工单'))
+        if (Gate::denies('订单管理-订单-生成工单')){
             return ['success' => false, 'message' => '没有对应权限'];
+        }
+
         $this->orderService->syncOrderByCodes([$request->input('order_no')]);
 
-        if ($this->service->checkWorkOrder($request->input('order_no')))
+        if ($this->service->checkWorkOrder($request->input('order_no'))){
             return ['success' => false, 'message' => '当前订单已有相同类型的工单'];
-
+        }
         $this->service->store($request->all());
+
         return ['success' => true];
     }
 
@@ -40,37 +45,55 @@ class WorkOrderExpressAbnormalController extends Controller
         if (Gate::denies('订单管理-工单处理-货主编辑'))
             return ['success' => false, 'message' => '没有对应权限'];
         $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) return ['success' => false, 'message' => '参数异常'];
-        else if (in_array($detail->status,['完成','宝时终审'])) return ['success' => false, 'message' => '工单已完成,请刷新重试'];
-        $this->service->ownerEdit($detail,$request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true, 'data' => $workOrder];
+        if (!$detail ) {
+            return ['success' => false, 'message' => '参数异常'];
+        } else if (in_array($detail->status, ['完成', '宝时终审'])) {
+            return ['success' => false, 'message' => '工单已完成,请刷新重试'];
+        }
+
+        $this->service->ownerEdit($detail, $request->all());
+
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
+        return ['success' => true, 'data' => $data];
     }
 
     public function logisticHandleApi(Request $request): array
     {
         if (Gate::denies('订单管理-工单处理-承运商编辑'))
             return ['success' => false, 'message' => '没有对应权限'];
-        $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) return ['success' => false, 'message' => '参数异常'];
-        else if ($detail->status == '完成') return ['success' => false, 'message' => '工单已完成,请刷新重试'];
+        $detail = WorkOrderDetail::query()->find($request->input('detail_id'));
+
+        if (!$detail) {
+            return ['success' => false, 'message' => '参数异常'];
+        } else if ($detail->status == '完成') {
+            return ['success' => false, 'message' => '工单已完成,请刷新重试'];
+        }
+
         $this->service->logisticHandle($detail, $request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true, 'data' => $workOrder];
+
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
+        return ['success' => true, 'data' => $data];
     }
 
 
     public function baoShiReviewApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-宝时编辑'))
+        if (Gate::denies('订单管理-工单处理-宝时编辑')){
             return ['success' => false, 'message' => '没有对应权限'];
-        $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) return ['success' => false,'message' => '参数异常'];
-        $this->service->baoShiReview($detail,$request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true,'data' => $workOrder];
+        }
+
+        $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));;
+
+        if (!$detail) {
+            return ['success' => false, 'message' => '参数异常'];
+        }
+
+        $this->service->baoShiReview($detail, $request->all());
+
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
+        return ['success' => true, 'data' => $data];
     }
 }

+ 29 - 11
app/Http/Controllers/WorkOrderInformationChangeController.php

@@ -40,14 +40,22 @@ class WorkOrderInformationChangeController extends Controller
 
     public function ownerEditApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-货主编辑'))
+        if (Gate::denies('订单管理-工单处理-货主编辑')){
             return ['success' => false, 'message' => '没有对应权限'];
+        }
+
         $detail = WorkOrderDetail::query()->find($request->input('detail_id'));
+
         if (!$detail) {
             return ['success' => false, 'message' => '参数异常'];
-        } else if($detail->status == '完成') return ['success' => false, 'message' => '工单已完成,请刷新重试'];
+        } else if($detail->status == '完成') {
+            return ['success' => false, 'message' => '工单已完成,请刷新重试'];
+        }
+
         $this->service->ownerEdit($detail, $request->all());
-        $data = $this->service->getDefaultWith($detail->work_order_id);
+
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
         return ['success' => true, 'data' => $data];
     }
 
@@ -64,9 +72,14 @@ class WorkOrderInformationChangeController extends Controller
 
         if (!$detail) {
             return ['success' => false, 'message' => '参数异常'];
-        } else if($detail->status == '完成') return ['success' => false, 'message' => '工单已完成,请刷新重试'];
+        } else if($detail->status == '完成'){
+            return ['success' => false, 'message' => '工单已完成,请刷新重试'];
+        }
+
         $this->service->logisticHandler($detail, $request->all());
-        $data = $this->service->getDefaultWith($detail->work_order_id);
+
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
         return ['success' => true, 'data' => $data];
     }
 
@@ -89,9 +102,11 @@ class WorkOrderInformationChangeController extends Controller
             return ['success' => false, 'message' => '参数异常,刷新后重试'];
         }
         $this->service->logisticBatchHandler($details,$request->all());
-        $data = $this->service->getDefaultWith($details->map(function($item){
+
+        $data = WorkOrder::query()->defaultWith()->find($details->map(function($item){
             return $item->work_order_id;
-        }));
+        })->toArray());
+
         return ['success' => true,'data' => $data];
     }
 
@@ -109,7 +124,7 @@ class WorkOrderInformationChangeController extends Controller
             return ['success' => false, 'message' => '参数异常'];
         }
         $this->service->baoShiReview($detail, $request->all());
-        $data = $this->service->getDefaultWith($detail->work_order_id);
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
         return ['success' => true, 'data' => $data];
     }
 
@@ -120,8 +135,9 @@ class WorkOrderInformationChangeController extends Controller
      */
     public function baoShiBatchReviewApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-宝时编辑'))
+        if (Gate::denies('订单管理-工单处理-宝时编辑')){
             return ['success' => false, 'message' => '没有对应权限'];
+        }
         $detail_ids = $request->input('detail_ids', []);
 
         if (count($detail_ids) == 0) {
@@ -135,9 +151,11 @@ class WorkOrderInformationChangeController extends Controller
         }
 
         $this->service->baoShiBatchReview($details, $request->all());
-        $data = $this->service->getDefaultWith($details->map(function ($item) {
+
+        $data = WorkOrder::query()->defaultWith()->find($details->map(function ($item) {
             return $item->work_order_id;
-        }));
+        })->toArray());
+
         return ['success' => true,'data' => $data];
     }
 }

+ 32 - 24
app/Http/Controllers/WorkOrderInterceptController.php

@@ -58,16 +58,21 @@ class WorkOrderInterceptController extends Controller
      */
     public function logisticHandlerApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-承运商编辑'))
+        if (Gate::denies('订单管理-工单处理-承运商编辑')){
             return ['success' => false, 'message' => '没有对应权限'];
+        }
+
         $detail = WorkOrderDetail::query()->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) return ['success' => false, 'message' => '参数异常'];
+        if (!$detail) {
+            return ['success' => false, 'message' => '参数异常'];
+        }
+        if ($detail->status === '完成') {
+            return ['success' => false, 'message' => '工单已完成,请刷新重试'];
+        }
+        $this->service->logisticHandler($detail, $request->all());
 
-        if ($detail->status === '完成') return ['success' => false, 'message' => '工单已完成,请刷新重试'];
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
 
-        $this->service->logisticHandler($detail, $request->all());
-        $data = $this->service->getDefaultWith($detail->work_order_id);
         return ['success' => true, 'data' => $data];
     }
 
@@ -78,10 +83,12 @@ class WorkOrderInterceptController extends Controller
      */
     public function logisticBatchHandlerApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-承运商编辑'))
+        if (Gate::denies('订单管理-工单处理-承运商编辑')){
             return ['success' => false, 'message' => '没有对应权限'];
+        }
 
         $detail_ids = $request->input('detail_ids', []);
+
         if (count($detail_ids) == 0) {
             return ['success' => false, 'message' => '参数异常'];
         }
@@ -93,9 +100,9 @@ class WorkOrderInterceptController extends Controller
 
         $this->service->logisticBatchHandler($details, $request->all());
 
-        $data = $this->service->getDefaultWith($details->map(function ($item) {
+        $data = WorkOrder::query()->defaultWith()->find($details->map(function ($item) {
             return $item->work_order_id;
-        }));
+        })->toArray());
 
         return ['success' => true, 'data' => $data];
     }
@@ -107,27 +114,23 @@ class WorkOrderInterceptController extends Controller
      */
     public function baoShiReviewApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-宝时编辑'))
+        if (Gate::denies('订单管理-工单处理-宝时编辑')){
             return ['success' => false, 'message' => '没有对应权限'];
+        }
+
         $detail = WorkOrderDetail::query()->find($request->input('detail_id'));
+
         if (!$detail) {
             return ['success' => false, 'message' => '参数异常'];
         }
+
         $this->service->baoShiReviewIntercept($detail, $request->all());
-        $data = $this->service->getDefaultWith($detail->work_order_id);
+
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
         return ['success' => true, 'data' => $data];
     }
 
-//    public function baoShiBatchReviewApi(Request $request): array
-//    {
-//        if (Gate::denies('订单管理-工单处理-宝时编辑'))
-//            return ['success' => false, 'message' => '没有对应权限'];
-//        if (!$request->exists(['ids','process_progress'])) return ['success' => false, 'message' => '参数异常'];
-//        $workOrder = WorkOrder::query()->find($request->input('ids'));
-//        $this->service->baoShiBatchReviewIntercept($workOrder,$request->input('process_progress'));
-//        return ['success' => true];
-//    }
-
     /**
      * 宝时批量审核
      * @param Request $request
@@ -135,9 +138,12 @@ class WorkOrderInterceptController extends Controller
      */
     public function baoShiBatchReviewApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-宝时编辑'))
+        if (Gate::denies('订单管理-工单处理-宝时编辑')){
             return ['success' => false, 'message' => '没有对应权限'];
+        }
+
         $detail_ids = $request->input('detail_ids', []);
+
         if (count($detail_ids) == 0) {
             return ['success' => false, 'message' => '参数异常'];
         }
@@ -147,9 +153,11 @@ class WorkOrderInterceptController extends Controller
         }
 
         $this->service->baoShiBatchReview($details, $request->all());
-        $data = $this->service->getDefaultWith($details->map(function ($item) {
+
+        $data = WorkOrder::query()->defaultWith()->find($details->map(function ($item) {
             return $item->work_order_id;
-        }));
+        })->toArray());
+
         return ['success' => true, 'data' => $data];
     }
 }

+ 6 - 5
app/Http/Controllers/WorkOrderLossController.php

@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
 
 use App\Services\OrderService;
 use App\Services\WorkOrderLossService;
+use App\WorkOrder;
 use App\WorkOrderDetail;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
@@ -17,10 +18,10 @@ class WorkOrderLossController extends Controller
      */
     private $service;
     private $orderService;
-    public function __construct()
+    public function __construct(WorkOrderLossService  $service,OrderService $orderService)
     {
-        $this->service = app('WorkOrderLossService');
-        $this->orderService = app('OrderService');
+        $this->service = $service;
+        $this->orderService = $orderService;
     }
 
 
@@ -62,7 +63,7 @@ class WorkOrderLossController extends Controller
         $workOrder = $detail->workOrder;
         if (!$detail||!$workOrder) return ['success' => false, 'message' => '参数异常'];
         $this->service->baoShiReview($detail,$request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true,'data' => $workOrder];
+        $data = WorkOrder::query()->defaultWith()->find($request->input('detail_id'));
+        return ['success' => true,'data' => $data];
     }
 }

+ 34 - 28
app/Http/Controllers/WorkOrderMistakeController.php

@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
 
 use App\Services\OrderService;
 use App\Services\WorkOrderMistakeService;
+use App\WorkOrder;
 use App\WorkOrderDetail;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
@@ -29,7 +30,7 @@ class WorkOrderMistakeController extends Controller
             return ['success' => false, 'message' => '没有对应权限'];
         $this->orderService->syncOrderByCodes([$request->input('order_no')]);
 
-        if ($this->service->checkWorkOrder($request->input('order_no'))){
+        if ($this->service->checkWorkOrder($request->input('order_no'))) {
             return ['success' => false, 'message' => '当前订单已有相同类型的工单'];
         }
 
@@ -39,35 +40,41 @@ class WorkOrderMistakeController extends Controller
 
     public function ownerEditApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-货主编辑'))
+        if (Gate::denies('订单管理-工单处理-货主编辑')) {
             return ['success' => false, 'message' => '没有对应权限'];
+        }
+
         $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder){
+
+        if (!$detail) {
             return ['success' => false, 'message' => '参数异常'];
-        } else if ($detail->status === '完成'){
+        } else if ($detail->status === '完成') {
             return ['success' => false, 'message' => '处理失败,刷新当前页面重试'];
         }
+
         $this->service->ownerEdit($detail, $request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true, 'data' => $workOrder];
+
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
+        return ['success' => true, 'data' => $data];
     }
 
     public function baoShiHandleApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-宝时编辑'))
+        if (Gate::denies('订单管理-工单处理-宝时编辑')) {
             return ['success' => false, 'message' => '没有对应权限'];
+        }
         $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder){
+        if (!$detail) {
             return ['success' => false, 'message' => '参数异常'];
-        } else if ($detail->status === '完成' || $detail->status === '宝时终审'){
+        } else if ($detail->status === '完成' || $detail->status === '宝时终审') {
             return ['success' => false, 'message' => '处理失败,刷新当前页面重试'];
         }
         $this->service->baoShiCheckMistake($detail, $request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true, 'data' => $workOrder];
 
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
+        return ['success' => true, 'data' => $data];
     }
 
     public function ownerHandleApi(Request $request): array
@@ -75,16 +82,16 @@ class WorkOrderMistakeController extends Controller
         if (Gate::denies('订单管理-工单处理-货主编辑'))
             return ['success' => false, 'message' => '没有对应权限'];
         $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) {
+        if (!$detail) {
             return ['success' => false, 'message' => '参数异常'];
-        }
-        else if ($detail->status === '完成') {
+        } else if ($detail->status === '完成') {
             return ['success' => false, 'message' => '处理失败,刷新当前页面重试'];
         }
         $this->service->ownerReview($detail, $request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true, 'data' => $workOrder];
+
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+
+        return ['success' => true, 'data' => $data];
     }
 
     public function ownerEndEditApi(Request $request): array
@@ -92,29 +99,28 @@ class WorkOrderMistakeController extends Controller
         if (Gate::denies('订单管理-工单处理-货主编辑'))
             return ['success' => false, 'message' => '没有对应权限'];
         $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) {
+        if (!$detail) {
             return ['success' => false, 'message' => '参数异常'];
         } else if ($detail->status === '宝时审核') {
             return ['success' => false, 'message' => '处理失败,刷新当前页面重试'];
         }
         $this->service->ownerEditReview($detail, $request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true, 'data' => $workOrder];
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+        return ['success' => true, 'data' => $data];
     }
 
     public function baoShiReviewApi(Request $request): array
     {
-        if (Gate::denies('订单管理-工单处理-宝时编辑'))
+        if (Gate::denies('订单管理-工单处理-宝时编辑')) {
             return ['success' => false, 'message' => '没有对应权限'];
+        }
         $detail = WorkOrderDetail::query()->with('workOrder')->find($request->input('detail_id'));
-        $workOrder = $detail->workOrder;
-        if (!$detail || !$workOrder) {
+        if (!$detail) {
             return ['success' => false, 'message' => '参数异常'];
         }
         $this->service->baoShiReview($detail, $request->all());
-        $workOrder->loadDefaultWith();
-        return ['success' => true, 'data' => $workOrder];
+        $data = WorkOrder::query()->defaultWith()->find($detail->work_order_id);
+        return ['success' => true, 'data' => $data];
     }
 
 

+ 13 - 0
app/Http/Controllers/WorkOrderProcessLogController.php

@@ -6,6 +6,7 @@ use App\Services\WorkOrderProcessLogService;
 use App\Services\WorkOrderService;
 use App\WorkOrder;
 use App\WorkOrderDetail;
+use App\WorkOrderProcessLog;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
 
@@ -41,10 +42,13 @@ class WorkOrderProcessLogController extends Controller
         $detail = $workOrder->details()->where('order_issue_type_id', $workOrder->order_issue_type_id)
             ->whereIn('status', [1, 2, 3, 4, 5])
             ->orderByDesc('created_at')->first();
+
         if (!$detail) {
             return ['success' => false, 'message' => '工单当前没有待处理的项'];
         }
+
         $data = $this->service->createProcessLog($detail, $request->all());
+
         return ['success' => true, 'data' => $data];
     }
 
@@ -117,4 +121,13 @@ class WorkOrderProcessLogController extends Controller
         return ['success' => true, 'data' => $data];
     }
 
+    public function destroyApi(Request $request): array
+    {
+        if (Gate::denies('订单管理-工单处理-处理日志删除')) {
+            return ['success' => false, 'message' => '没有对应的权限'];
+        }
+        WorkOrderProcessLog::query()->where('id',$request->input('id'))->delete();
+        return ['success' => true];
+    }
+
 }

+ 37 - 19
app/Services/WorkOrderCancelInterceptService.php

@@ -47,20 +47,25 @@ class WorkOrderCancelInterceptService extends WorkOrderService
             ->where('work_order_id', $workOrder['id'])->exists();
     }
 
-
     public function store($params)
     {
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '取消拦截']);
         $order = $this->syncOrder($params['order_no']);
         $workOrder = $this->createAndNotification($order, $issueType, $params['remark'] ?? '');
-        $workOrder->change('承运商处理', '商家创建', '');
         $workOrder->update([
-            'logistic_tag' => 3,
-            'owner_tag' => 0,
-            'bao_shi_tag' => 0,
+            'status'=> WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+            'logistic_tag' => WorkOrder::$NEW_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
         $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
-        $detail->change('承运商处理', '商家创建', '');
+        $detail->update([
+            'status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+        ]);
         $this->logService->createLog($detail, '创建', '创建工单');
     }
 
@@ -79,15 +84,22 @@ class WorkOrderCancelInterceptService extends WorkOrderService
     public function logisticHandle(WorkOrderDetail $detail, $params)
     {
         $this->detailService->updateDetail($detail, $params);
-        $detail->change('宝时终审', $params['process_progress'], '承运商处理');
-        $detail->workOrder->change('宝时终审', $params['process_progress'], '承运商处理');
+        $detail->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+        ]);
+
         $detail->workOrder()->update([
-            'owner_tag' => 0,
-            'logistic_tag' => 0,
-            'bao_shi_tag' => 2,
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'bao_shi_tag' => WorkOrder::$STRAND_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
         $this->syncOrderIssueProcessLogs($detail);
-        $this->logService->createLog($detail, '处理', '承运商处理');
+        $this->logService->createLog($detail, '处理', $params['process_progress'].'-承运商处理');
     }
 
     /**
@@ -110,14 +122,20 @@ class WorkOrderCancelInterceptService extends WorkOrderService
     public function baoShiReview(WorkOrderDetail $detail, $params)
     {
         $this->detailService->updateDetail($detail, $params);
-        $detail->change('待货主完结', $params['process_progress'], '宝时终审');
-        $detail->workOrder->change('待货主完结', $params['process_progress'], '宝时终审');
-        $detail->workOrder->update([
-            'owner_tag' => 2,
-            'logistic_tag' => 0,
-            'bao_shi_tag' => 0,
+        $detail->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+        ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'owner_tag' => WorkOrder::$STRAND_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
-        $this->logService->createLog($detail, '终审', '宝时终审');
+        $this->logService->createLog($detail, '终审', $params['process_progress'].'-宝时终审');
     }
 
     /**

+ 49 - 19
app/Services/WorkOrderDamageService.php

@@ -53,14 +53,20 @@ class WorkOrderDamageService extends WorkOrderService
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '破损']);
         $order = $this->syncOrder($params['order_no']);
         $workOrder = $this->createAndNotification($order, $issueType, $params['remark'] ?? '');
-        $workOrder->change('承运商处理','商家创建','');
         $workOrder->update([
-            'logistic_tag' => 3,
-            'owner_tag' => 0,
-            'bao_shi_tag' => 0,
+            'status'=> WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+            'logistic_tag' => WorkOrder::$NEW_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
         $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
-        $detail->change('承运商处理','商家创建','');
+        $detail->update([
+            'status'=> WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+        ]);
         $this->logService->createLog($detail, '创建', '创建工单');
     }
 
@@ -72,8 +78,16 @@ class WorkOrderDamageService extends WorkOrderService
     public function ownerEdit(WorkOrderDetail $detail,$params)
     {
         $this->detailService->updateDetail($detail, $params);
-        $detail->change('承运商处理','商家创建','');
-        $detail->workOrder->change('承运商处理','商家创建','');
+        $detail->update([
+            'status'=> WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+        ]);
+        $detail->workOrder()->update([
+            'status'=> WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+        ]);
         $this->logService->createLog($detail, '处理', '货主编辑');
 
     }
@@ -86,14 +100,23 @@ class WorkOrderDamageService extends WorkOrderService
     public function logisticHandle(WorkOrderDetail $detail, $params)
     {
         $this->detailService->updateDetail($detail, $params);
-        $detail->change('宝时终审', $params['process_progress'],'承运商处理');
-        $detail->workOrder->change('宝时终审', $params['process_progress'],'承运商处理');
+
+        $detail->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+        ]);
+
         $detail->workOrder()->update([
-            'bao_shi_tag' => 2,
-            'logistic_tag' => 0,
-            'owner_tag' => 0,
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'bao_shi_tag' => WorkOrder::$STRAND_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
-        $this->logService->createLog($detail, '处理', '承运商处理');
+
+        $this->logService->createLog($detail, '处理', $params['process_progress'].'-承运商处理');
     }
 
     /**
@@ -104,15 +127,22 @@ class WorkOrderDamageService extends WorkOrderService
     public function baoShiReview(WorkOrderDetail $detail, $params)
     {
         $this->detailService->updateDetail($detail, $params);
-        $detail->change('待货主完结', $params['process_progress'],'宝时终审');
-        $detail->workOrder->change('待货主完结', $params['process_progress'],'宝时终审');
+        $detail->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+        ]);
+
         $detail->workOrder()->update([
-            'owner_tag' => 2,
-            'logistic_tag' => 0,
-            'bao_shi_tag' => 0,
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'owner_tag' => WorkOrder::$STRAND_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
         $this->syncOrderIssueProcessLogs($detail);
-        $this->logService->createLog($detail, '终审', '宝时终审');
+        $this->logService->createLog($detail, '终审', $params['process_progress'].'-宝时终审');
     }
 
 }

+ 1 - 1
app/Services/WorkOrderDetailService.php

@@ -117,7 +117,7 @@ class WorkOrderDetailService
     public function endDetail(WorkOrderDetail $detail)
     {
         // 标记为完成
-        $detail->end();
+        $detail->update(['status' => 5, 'work_order_status' => 0]);
         $this->commodityService->endDetail($detail);
         $this->imageService->endDetail($detail);
         $this->logService->endDetail($detail);

+ 62 - 35
app/Services/WorkOrderExpressAbnormalService.php

@@ -21,6 +21,7 @@ class WorkOrderExpressAbnormalService extends WorkOrderService
     private $logService;
     private $detailService;
     private $issueTypeService;
+
     public function __construct()
     {
         parent::__construct();
@@ -32,12 +33,12 @@ class WorkOrderExpressAbnormalService extends WorkOrderService
     public function checkWorkOrder($nos)
     {
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '快递异常']);
-        $orderQuery = Order::query()->select('id')->where('code',$nos);
-        $workOrder = WorkOrder::query()->select('id')->whereIn('order_id',$orderQuery)->first();
+        $orderQuery = Order::query()->select('id')->where('code', $nos);
+        $workOrder = WorkOrder::query()->select('id')->whereIn('order_id', $orderQuery)->first();
         if (!$workOrder) return false;
         return WorkOrderDetail::query()
-            ->where('order_issue_type_id',$issueType['id'])
-            ->where('work_order_id',$workOrder['id'])->exists();
+            ->where('order_issue_type_id', $issueType['id'])
+            ->where('work_order_id', $workOrder['id'])->exists();
     }
 
     /*
@@ -55,18 +56,21 @@ class WorkOrderExpressAbnormalService extends WorkOrderService
     {
         $order = $this->syncOrder($params['order_no']);
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '快递异常']);
-
-        $workOrder = $this->createOrResetWorkOrder($order, $issueType, $params['remark'] ?? '',$params['type']);
-        $workOrder->change('承运商处理','商家创建','');
+        $workOrder = $this->createOrResetWorkOrder($order, $issueType, $params['remark'] ?? '', $params['type']);
         $workOrder->update([
-            'logistic_tag' => 3,
-            'owner_tag' => 0,
-            'bao_shi_tag' => 0,
+            'status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+            'logistic_tag' => WorkOrder::$NEW_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
-
         $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
-        $detail->change('承运商处理','商家创建','');
-
+        $detail->update([
+            'status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS
+        ]);
         $this->logService->createLog($detail, '创建', '创建工单');
     }
 
@@ -75,12 +79,21 @@ class WorkOrderExpressAbnormalService extends WorkOrderService
      * @param WorkOrderDetail $detail
      * @param $params
      */
-    public function ownerEdit(WorkOrderDetail $detail,$params)
+    public function ownerEdit(WorkOrderDetail $detail, $params)
     {
-        $this->detailService->updateDetail($detail,$params);
-        $detail->workOrder->clearWorkOrderStatus();
-        $detail->change('承运商处理','商家创建','');
-        $detail->workOrder->change('承运商处理','商家创建','');
+        $this->detailService->updateDetail($detail, $params);
+
+        $detail->workOrder()->update([
+                'status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+                'process_progress' => '商家创建',
+                'last_status' => WorkOrder::$DEFAULT_STATUS,]
+        );
+
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+        ]);
         $this->logService->createLog($detail, '处理', '商家编辑');
     }
 
@@ -89,17 +102,25 @@ class WorkOrderExpressAbnormalService extends WorkOrderService
      * @param WorkOrderDetail $detail
      * @param $params
      */
-    public function logisticHandle(WorkOrderDetail $detail,$params)
+    public function logisticHandle(WorkOrderDetail $detail, $params)
     {
-        $this->detailService->updateDetail($detail,$params);
-        $detail->change('宝时终审',$params['process_progress'],'承运商处理');
-        $detail->workOrder->change('宝时终审',$params['process_progress'],'承运商处理');
+        $this->detailService->updateDetail($detail, $params);
+        $detail->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+        ]);
+
         $detail->workOrder()->update([
-            'bao_shi_tag' => 2,
-            'owner_tag' => 0,
-            'logistic_tag' => 0,
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'bao_shi_tag' => WorkOrder::$STRAND_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
-        $this->logService->createLog($detail, '处理', '承运商处理');
+
+        $this->logService->createLog($detail, '处理', $params['process_progress'] . '-承运商处理');
     }
 
     /**
@@ -107,18 +128,24 @@ class WorkOrderExpressAbnormalService extends WorkOrderService
      * @param WorkOrderDetail $detail
      * @param $params
      */
-    public function baoShiReview(WorkOrderDetail $detail,$params)
+    public function baoShiReview(WorkOrderDetail $detail, $params)
     {
-        $this->detailService->updateDetail($detail,$params);
-        $detail->change('待货主完结',$params['process_progress'],'宝时终审');
-        $detail->workOrder->change('待货主完结',$params['process_progress'],'宝时终审');
-        $detail->workOrder->update([
-            'owner_tag' => 2,
-            'logistic_tag' => 0,
-            'bao_shi_tag' => 0,
+        $this->detailService->updateDetail($detail, $params);
+        $detail->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+        ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'owner_tag' => WorkOrder::$STRAND_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
         $this->syncOrderIssueProcessLogs($detail);
-        $this->logService->createLog($detail, '终审', '宝时终审');
+        $this->logService->createLog($detail, '终审', $params['process_progress'] . '-宝时终审');
     }
 
 }

+ 44 - 21
app/Services/WorkOrderInformationChangeService.php

@@ -56,15 +56,25 @@ class WorkOrderInformationChangeService extends WorkOrderService
     {
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '信息更改']);
         $order = $this->syncOrder($params['order_no']);
+
         $workOrder = $this->createAndNotification($order, $issueType, $params['remark'] ?? '');
-        $workOrder->change('承运商处理', '商家创建', '');
+
         $workOrder->update([
-            'logistic_tag' => 3,
-            'owner_tag' => 0,
-            'bao_shi_tag' => 0,
+            'status'=> WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+            'logistic_tag' => WorkOrder::$NEW_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
+
         $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
-        $detail->change('承运商处理', '商家创建', '');
+
+        $detail->update([
+            'status'=> WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+        ]);
         $this->logService->createLog($detail, '创建', '创建工单');
     }
 
@@ -77,7 +87,7 @@ class WorkOrderInformationChangeService extends WorkOrderService
     {
         $this->logService->createLog($detail, '处理', '商家编辑');
         $detail->update(['remark' => $params['remark']]);
-        $detail->workOrder->update(['remark' => $params['remark']]);
+        $detail->workOrder()->update(['remark' => $params['remark']]);
     }
 
     /**
@@ -88,15 +98,21 @@ class WorkOrderInformationChangeService extends WorkOrderService
     public function logisticHandler(WorkOrderDetail $detail, $params)
     {
 
-        $detail->change('宝时终审', $params['process_progress'], '承运商处理');
-        $detail->workOrder->change('宝时终审', $params['process_progress'], '承运商处理');
-        $detail->cancelLogisticTagHandle();
-        $detail->workOrder->update([
-            'bao_shi_tag' => 2,
-            'owner_tag' => 0,
-            'logistic_tag' => 0,
+        $detail->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
         ]);
-        $this->logService->createLog($detail, '处理', '承运商处理');
+
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'bao_shi_tag' => WorkOrder::$STRAND_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+        ]);
+        $this->logService->createLog($detail, '处理', '承运商处理-'.$params['process_progress']);
     }
 
     /**
@@ -118,15 +134,22 @@ class WorkOrderInformationChangeService extends WorkOrderService
      */
     public function baoShiReview(WorkOrderDetail $detail, $params)
     {
-        $detail->change('待货主完结', $params['process_progress'], '宝时终审');
-        $detail->workOrder->change('待货主完结', $params['process_progress'], '宝时终审');
-        $detail->workOrder->update([
-            'owner_tag' => 2,
-            'bao_shi_tag' => 0,
-            'logistic_tag' => 0,
+        $detail->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
         ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'owner_tag' => WorkOrder::$STRAND_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+        ]);
+
         $this->syncOrderIssueProcessLogs($detail);
-        $this->logService->createLog($detail, '终审', '宝时终审');
+        $this->logService->createLog($detail, '终审', '宝时终审-'.$params['process_progress']);
     }
 
     /**

+ 58 - 18
app/Services/WorkOrderInterceptService.php

@@ -68,10 +68,23 @@ class WorkOrderInterceptService extends WorkOrderService
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '拦截']);
         $order = $this->syncOrder($params['order_no']);
         $workOrder = $this->createAndNotification($order, $issueType, $params['remark'] ?? '拦截工单');
-        $workOrder->change('承运商处理', '商家创建', '');
-        $workOrder->update(['logistic_tag' => 3, 'owner_tag' => 0, 'bao_shi_tag' => 0]);
+
         $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
-        $detail->change('承运商处理', '商家创建', '');
+
+        $workOrder->update([
+            'status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+            'logistic_tag' => WorkOrder::$NEW_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+        ]);
+
+        $detail->update([
+            'status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+            'process_progress' => '商家创建'
+        ]);
         $this->logService->createLog($detail, '创建', '创建');
     }
 
@@ -94,10 +107,20 @@ class WorkOrderInterceptService extends WorkOrderService
     public function logisticHandler(WorkOrderDetail $detail, $params)
     {
         $detail->cancelLogisticTagHandle();         // 取消承运商处理标记
-        $detail->change('宝时终审', $params['process_progress'], '承运商处理');
-        $detail->workOrder->change('宝时终审', $params['process_progress'], '承运商处理');
-        $detail->workOrder()->update(['logistic_tag' => 0, 'owner_tag' => 0, 'bao_shi_tag' => 2]);
-        $this->logService->createLog($detail, '处理', '承运商处理');
+        $detail->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+        ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$STRAND_TAG,
+        ]);
+        $this->logService->createLog($detail, '处理', '承运商处理-' . $params['process_progress']);
     }
 
     /**
@@ -119,15 +142,21 @@ class WorkOrderInterceptService extends WorkOrderService
      */
     public function baoShiReviewIntercept(WorkOrderDetail $detail, $params)
     {
-        $detail->change('待货主完结', $params['process_progress'], '宝时终审');
-        $detail->workOrder->change('待货主完结', $params['process_progress'], '宝时终审');
-        $detail->workOrder->update([
-            'logistic_tag' => 0,
-            'owner_tag' => 2,
-            'bao_shi_tag' => 0,
+        $detail->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+        ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'owner_tag' => WorkOrder::$STRAND_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
         $this->syncOrderIssueProcessLogs($detail);
-        $this->logService->createLog($detail, '终审', '宝时终审');
+        $this->logService->createLog($detail, '终审', '宝时终审-' . $params['process_progress']);
     }
 
     /**
@@ -153,10 +182,21 @@ class WorkOrderInterceptService extends WorkOrderService
         if ($workOrder->order_issue_type_id != $issueType->id) return;
         $detail = $workOrder->details()->where('order_issue_type_id', $issueType->id)->where('status', '宝时终审')->orderByDesc('created_at')->first();
         if (!$detail) return;
-        $detail->change('待货主完结', '成功已退回,不赔偿', '宝时终审');
-        $detail->workOrder->change('待货主完结', '成功已退回,不赔偿', '宝时终审');
-        $detail->workOrder->update(['logistic_tag' => 0, 'owner_tag' => 2, 'bao_shi_tag' => 0]);
-        $this->logService->createLog($detail, '终审', '自动终审');
+        $process_progress = '成功已退回,不赔偿';
+        $detail->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $process_progress,
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+        ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $process_progress,
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'owner_tag' => WorkOrder::$STRAND_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+        ]);
+        $this->logService->createLog($detail, '终审', '自动终审' . $process_progress);
     }
 
 }

+ 39 - 20
app/Services/WorkOrderLossService.php

@@ -56,14 +56,20 @@ class WorkOrderLossService extends WorkOrderService
         $orderIssueType = $this->issueTypeService->firstOrCreate(['name' => '快递丢件']);
         $order = $this->syncOrder($params['order_no']);
         $workOrder = $this->createAndNotification($order, $orderIssueType, $params['remark'] ?? '','宝时创建');
-        $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
-        $workOrder->change('货主处理','宝时创建','');
         $workOrder->update([
-            'owner_tag'=> 3,
-            'logistic_tag' => 0,
-            'bao_shi_tag' => 0,
+            'status'=> WorkOrder::$OWNER_HANDLER_STATUS,
+            'process_progress' => '宝时创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+            'owner_tag' => WorkOrder::$NEW_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+        ]);
+        $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
+        $detail->update([
+            'status'=> WorkOrder::$OWNER_HANDLER_STATUS,
+            'process_progress' => '宝时创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
         ]);
-        $detail->change('货主处理','宝时创建','');
         $this->logService->createLog($detail, '创建', '创建工单');
     }
 
@@ -75,14 +81,20 @@ class WorkOrderLossService extends WorkOrderService
     public function ownerFillDetail(WorkOrderDetail $detail,$params)
     {
         $this->detailService->fillLossDetail($detail, $params);
-        $detail->change('宝时终审','待终审','货主处理');
-        $detail->workOrder->change('宝时终审','待终审','货主处理');
-        $detail->workOrder->update([
-            'bao_shi_tag' => 2,
-            'logistic_tag' => 0,
-            'owner_tag' => 0,
+        $detail->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => '待终审',
+            'last_status' => WorkOrder::$OWNER_HANDLER_STATUS,
         ]);
-        $this->logService->createLog($detail, '处理', '填充丢件信息');
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => '待终审',
+            'last_status' => WorkOrder::$OWNER_HANDLER_STATUS,
+            'bao_shi_tag' => WorkOrder::$STRAND_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+        ]);
+        $this->logService->createLog($detail, '处理', '待终审'.'-填充丢件信息');
     }
 
     /**
@@ -92,15 +104,22 @@ class WorkOrderLossService extends WorkOrderService
      */
     public function baoShiReview(WorkOrderDetail $detail,$params)
     {
+        $process_progress = '终审完成';
         $this->detailService->updateLossDetail($detail,$params);
-        $detail->change('待货主完结','终审完成',"宝时终审");
-        $detail->workOrder->change('待货主完结','终审完成',"宝时终审");
-        $detail->workOrder->update([
-            'owner_tag' => 2,
-            'logistic_tag' => 0,
-            'bao_shi_tag' => 0,
+        $detail->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $process_progress,
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+        ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $process_progress,
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'owner_tag' => WorkOrder::$STRAND_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
         $this->syncOrderIssueProcessLogs($detail);
-        $this->logService->createLog($detail, '终审', '宝时终审');
+        $this->logService->createLog($detail, '终审', '终审完成'.'-宝时终审');
     }
 }

+ 74 - 30
app/Services/WorkOrderMistakeService.php

@@ -55,13 +55,19 @@ class WorkOrderMistakeService extends WorkOrderService
         $order = $this->syncOrder($params['order_no']);
         $workOrder = $this->createAndNotification($order, $issueType, $params['remark'] ?? '', '商家已创建');
         $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
-        $workOrder->change('宝时处理', '商家创建', '');
         $workOrder->update([
-            'bao_shi_tag' => 3,
-            'owner_tag' => 0,
-            'logistic_tag' => 0,
+            'status'=> WorkOrder::$BAO_SHI_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+            'bao_shi_tag' => WorkOrder::$NEW_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+        ]);
+        $detail->update([
+            'status'=> WorkOrder::$BAO_SHI_HANDLER_STATUS,
+            'process_progress' => '商家创建',
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
         ]);
-        $detail->change('宝时处理', '商家创建', '');
         $this->logService->createLog($detail, '创建', '商家创建');
     }
 
@@ -73,8 +79,16 @@ class WorkOrderMistakeService extends WorkOrderService
     public function ownerEdit(WorkOrderDetail $detail, $params)
     {
         $this->detailService->updateDetail($detail, $params);
-        $detail->change('宝时处理', '商家创建', '');
-        $detail->workOrder->change('宝时处理', '商家创建', '');
+        $detail->update([
+            'status' => WorkOrder::$BAO_SHI_HANDLER_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+        ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$BAO_SHI_HANDLER_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$DEFAULT_STATUS,
+        ]);
         $this->logService->createLog($detail, '处理', '商家修改');
     }
 
@@ -86,14 +100,20 @@ class WorkOrderMistakeService extends WorkOrderService
     public function baoShiCheckMistake(WorkOrderDetail $detail, $params)
     {
         $this->detailService->updateDetail($detail, $params);
-        $detail->change('货主处理', '已核实', '宝时处理');
-        $detail->workOrder->change('货主处理', '已核实', '宝时处理');
+        $detail->update([
+            'status' => WorkOrder::$OWNER_HANDLER_STATUS,
+            'process_progress' => '已核实',
+            'last_status' => WorkOrder::$BAO_SHI_HANDLER_STATUS,
+        ]);
         $detail->workOrder()->update([
-            'bao_shi_tag' => 0,
-            'owner_tag' => 2,
-            'logistic_tag' => 0,
+            'status' => WorkOrder::$OWNER_HANDLER_STATUS,
+            'process_progress' => '已核实',
+            'last_status' => WorkOrder::$BAO_SHI_HANDLER_STATUS,
+            'owner_tag' => WorkOrder::$STRAND_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
-        $this->logService->createLog($detail, '处理', '宝时处理');
+        $this->logService->createLog($detail, '处理', '已核实'.'-宝时处理');
     }
 
     /**
@@ -104,14 +124,23 @@ class WorkOrderMistakeService extends WorkOrderService
     public function ownerReview(WorkOrderDetail $detail, $params)
     {
         $this->detailService->updateDetail($detail, $params);
-        $detail->change('宝时终审', $params['process_progress'], '货主处理');
-        $detail->workOrder->change('宝时终审', $params['process_progress'], '货主处理');
-        $detail->workOrder->update([
-            'bao_shi_tag' => 2,
-            'owner_tag' => 0,
-            'logistic_tag' => 0,
+
+        $detail->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$OWNER_HANDLER_STATUS,
+        ]);
+
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$OWNER_HANDLER_STATUS,
+            'bao_shi_tag' => WorkOrder::$STRAND_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
-        $this->logService->createLog($detail, '处理', '货主处理');
+
+        $this->logService->createLog($detail, '处理', $params['process_progress'].'-货主处理');
     }
 
     /**
@@ -122,9 +151,18 @@ class WorkOrderMistakeService extends WorkOrderService
     public function ownerEditReview(WorkOrderDetail $detail, $params)
     {
         $this->detailService->updateDetail($detail, $params);
-        $detail->change('宝时终审', $params['process_progress'], '货主处理');
-        $detail->workOrder->change('宝时终审', $params['process_progress'], '货主处理');
-        $this->logService->createLog($detail, '处理', '货主编辑');
+
+        $detail->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$OWNER_HANDLER_STATUS,
+        ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$OWNER_HANDLER_STATUS,
+        ]);
+        $this->logService->createLog($detail, '处理', $params['process_progress'].'-货主编辑');
     }
 
     /**
@@ -135,15 +173,21 @@ class WorkOrderMistakeService extends WorkOrderService
     public function baoShiReview($detail, $params)
     {
         $this->detailService->updateDetail($detail, $params);
-        $detail->change('待货主完结', $params['process_progress'], '宝时终审');
-        $detail->workOrder->change('待货主完结', $params['process_progress'], '宝时终审');
-        $detail->workOrder->update([
-            'owner_tag' => 2,
-            'logistic_tag' => 0,
-            'bao_shi_tag' => 0,
+        $detail->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+        ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $params['process_progress'],
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'owner_tag' => WorkOrder::$STRAND_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
         $this->syncOrderIssueProcessLogs($detail);
-        $this->logService->createLog($detail, '终审', '宝时终审');
+        $this->logService->createLog($detail, '终审', $params['process_progress'].'-宝时终审');
     }
 
 }

+ 20 - 13
app/Services/WorkOrderProcessLogService.php

@@ -21,7 +21,7 @@ class WorkOrderProcessLogService
      * @param User|null $user
      * @return Model
      */
-    public function createProcessLog(WorkOrderDetail $detail, $params,User $user = null): Model
+    public function createProcessLog(WorkOrderDetail $detail, $params, User $user = null): Model
     {
         $user = $user ?? Auth::user();
         $process_log = $detail->processLogs()->create([
@@ -34,14 +34,21 @@ class WorkOrderProcessLogService
         /** @var WorkOrder $work_order */
         $work_order = $detail->workOrder;
 
-        if (in_array($work_order->status,['宝时处理','宝时终审']) && $work_order->bao_shi_tag != 1){
-            $detail->workOrder()->whereIn('status',[1,4])->update(['bao_shi_tag' => 1]);
-        } else if (in_array($work_order->status,['承运商处理']) && $work_order->logistic_tag != 1){
-            $detail->workOrder()->where('status',3)->update(['logistic_tag' => 1]);
-        } else if (in_array($work_order->status,['货主处理','待货主完结']) && $work_order->owner_tag != 1){
-            $detail->workOrder()->whereIn('status',[2,6])->update(['owner_tag' => 1]);
+        if (in_array($work_order->status, ['宝时处理', '宝时终审'])
+            && $work_order->bao_shi_tag != WorkOrder::$NO_STATE_TAG) {
+
+            $detail->workOrder()->whereIn('status', [1, 4])->update(['bao_shi_tag' => WorkOrder::$NO_STATE_TAG]);
+        } else if (in_array($work_order->status, ['承运商处理'])
+            && $work_order->logistic_tag != WorkOrder::$NO_STATE_TAG) {
+
+            $detail->workOrder()->where('status', 3)->update(['logistic_tag' => WorkOrder::$NO_STATE_TAG]);
+        } else if (in_array($work_order->status, ['货主处理', '待货主完结'])
+            && $work_order->owner_tag != WorkOrder::$NO_STATE_TAG) {
+
+            $detail->workOrder()->whereIn('status', [2, 6])->update(['owner_tag' => 1]);
         }
-        $process_log->setAttribute('user',$user);
+        $process_log->setAttribute('user', $user);
+
         return $process_log;
     }
 
@@ -51,13 +58,13 @@ class WorkOrderProcessLogService
      * @param $params
      * @return array
      */
-    public function batchCreateProcessLog($workOrders,$params): array
+    public function batchCreateProcessLog($workOrders, $params): array
     {
         $user = Auth::user();
         $process_logs = [];
-        foreach ($workOrders as $workOrder){
+        foreach ($workOrders as $workOrder) {
             $detail = $workOrders->toBeProcessDetail();
-            $process_logs[] = $this->createProcessLog($detail,$params,$user);
+            $process_logs[] = $this->createProcessLog($detail, $params, $user);
         }
         return $process_logs;
     }
@@ -67,10 +74,10 @@ class WorkOrderProcessLogService
      * @param OrderIssue $orderIssue
      * @param WorkOrderDetail $detail
      */
-    public function syncOrderIssue(OrderIssue $orderIssue,WorkOrderDetail $detail)
+    public function syncOrderIssue(OrderIssue $orderIssue, WorkOrderDetail $detail)
     {
         $logs = $detail->processLogs()->where('status', '未同步')->get();
-        $orderIssue->logs()->insert($logs->map(function($log)use($orderIssue){
+        $orderIssue->logs()->insert($logs->map(function ($log) use ($orderIssue) {
             return [
                 'order_issue_id' => $orderIssue->id,
                 'context' => $log->context,

+ 45 - 34
app/Services/WorkOrderService.php

@@ -38,19 +38,18 @@ class WorkOrderService
 
     public function createOrResetWorkOrder($order, $issueType, $remark, $process_progress = '商家创建')
     {
-        $user = Auth::user();
         $workOrder = WorkOrder::query()->where('order_id', $order->id)->orderByDesc('created_at')->first();
         if ($workOrder) {
             $this->detailService->undoneTagsByWorkOrder($workOrder);
             $workOrder->update([
                 'remark' => $remark,
                 'order_issue_type_id' => $issueType->id,
-                'creator_id' => $user['id'] ?? '',
-                'status' => 0,
+                'creator_id' => Auth::id() ?? '',
+                'status' => WorkOrder::$DEFAULT_STATUS,
                 'work_order_status' => 1,
                 'process_progress' => $process_progress,
                 'type' => $process_progress,
-                'last_handler_id' => $user['id'] ?? '',
+                'last_handler_id' => Auth::id() ?? '',
                 'created_at' => now(),
             ]);
             return $workOrder;
@@ -59,16 +58,16 @@ class WorkOrderService
             'order_id' => $order->id,
             'logistic_id' => $order->logistic_id ?? '',
             'owner_id' => $order->owner_id ?? '',
-            'creator_id' => $user['id'] ?? '',
+            'creator_id' => Auth::id() ?? '',
             'remark' => $remark,
             'outer_table_name' => 'orders',
             'order_issue_type_id' => $issueType->id,
             'uniquely_tag' => $order->code,
-            'status' => 0,
+            'status' => WorkOrder::$DEFAULT_STATUS,
             'work_order_status' => 1,
             'process_progress' => $process_progress,
             'type' => $process_progress,
-            'last_handler_id' => $user['id'] ?? '',
+            'last_handler_id' => Auth::id() ?? '',
         ]);
     }
 
@@ -88,13 +87,13 @@ class WorkOrderService
     public function end(WorkOrder $workOrder, WorkOrderDetail $detail)
     {
         $this->detailService->endDetail($detail);
-        $this->logService->createLog($detail, '完结', '完结工单');
-        $workOrder->changeStatus('完成');
         $workOrder->update([
-            'owner_tag' => 0,
-            'logistic_tag' => 0,
-            'bao_shi_tag' => 0,
+            'status' => WorkOrder::$END_STATUS,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
+        $this->logService->createLog($detail, '完结', '完结工单');
     }
 
     /**
@@ -103,15 +102,22 @@ class WorkOrderService
      */
     public function ownerEndWorkOrderDetail(WorkOrderDetail $detail)
     {
-        $this->logService->createLog($detail, '完结', '货主完结');
-        $detail->change('完成', '完成', '待货主完结');
-        $detail->workOrder->change('完成', '完成', '待货主完结');
-        $detail->workOrder->update([
-            'owner_tag' => 0,
-            'logistic_tag' => 0,
-            'bao_shi_tag' => 0,
+
+        $detail->update([
+            'status' => WorkOrder::$END_STATUS,
+            'process_progress' => '完成',
+            'last_status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+        ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$END_STATUS,
+            'process_progress' => '完成',
+            'last_status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
         ]);
         $this->detailService->endDetail($detail);                       // 标记为处理过
+        $this->logService->createLog($detail, '完结', '货主完结');
     }
 
     /**
@@ -268,17 +274,22 @@ class WorkOrderService
     public function logisticHandlerTag(WorkOrderDetail $detail)
     {
         $detail->logisticTagHandle();
-        app(WorkOrderLogService::class)->createLog($detail, '处理', '处理中');
-        $detail->change('承运商处理', '承运商处理中', $detail->last_status);
-        $detail->workOrder->change('承运商处理', '承运商处理中', $detail->last_status);
-        if ($detail->workOrder->work_order_status === '1') {
-            $detail->workOrder()->update([
-                'logistic_tag' => 1,
-                'owner_tag' => 0,
-                'bao_shi_tag' => 0,
-                'work_order_status' => 0,
-            ]);
-        }
+        $last_status = WorkOrder::$enums['status'][$detail->status];
+        $detail->update([
+            'status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '承运商处理中',
+            'last_status' => $last_status,
+        ]);
+        $detail->workOrder()->update([
+            'status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
+            'process_progress' => '承运商处理中',
+            'last_status' => $last_status,
+            'logistic_tag' => WorkOrder::$NO_STATE_TAG,
+            'owner_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+            'work_order_status' => WorkOrder::$DEFAULT_TAG,
+        ]);
+        app(WorkOrderLogService::class)->createLog($detail, '处理', '标记处理中');
     }
 
     public function syncWorkOrder($rejectedBill)
@@ -308,16 +319,16 @@ class WorkOrderService
     {
         // 将当日承运商处理过 且 状态为`无`的 标记为滞留状态 `滞`
         WorkOrder::query()->where('status', 3)
-            ->where('logistic_tag', 1)
-            ->update(['logistic_tag' => 2]);
+            ->where('logistic_tag', WorkOrder::$NO_STATE_TAG)
+            ->update(['logistic_tag' => WorkOrder::$STRAND_TAG]);
     }
 
     private function updateBaoShiHandlerTask()
     {
         // 将当日宝时处理过 且 状态为`无`的 标记为滞留状态 `滞`
         WorkOrder::query()->whereIn('status', [1, 4])
-            ->where('bao_shi_tag', 1)
-            ->update(['bao_shi_tag' => 2]);
+            ->where('bao_shi_tag', WorkOrder::$NO_STATE_TAG)
+            ->update(['bao_shi_tag' => WorkOrder::$STRAND_TAG]);
     }
 
     /**

+ 138 - 94
app/WorkOrder.php

@@ -48,6 +48,51 @@ class WorkOrder extends Model
         "is_new_rejecting",         // 回库标记
         'created_at',
     ];
+    /**
+     * @var int 默认
+     */
+    public static $DEFAULT_STATUS = 0;              //
+    /**
+     * @var int  宝时处理
+     */
+    public static $BAO_SHI_HANDLER_STATUS = 1;      //  宝时处理
+    /**
+     * @var int 货主处理
+     */
+    public static $OWNER_HANDLER_STATUS = 2;        //  货主处理
+    /**
+     * @var int 承运商处理
+     */
+    public static $LOGISTIC_HANDLER_STATUS = 3;     //  承运商处理
+    /**
+     * @var int 宝时终审
+     */
+    public static $BAO_SHI_REVIEW_STATUS = 4;       //  宝时终审
+    /**
+     * @var int 完成
+     */
+    public static $END_STATUS = 5;                  //  完成
+    /**
+     * @var int 待货主完结
+     */
+    public static $TO_BO_OWNER_END_STATUS = 6;      //  待货主完结
+
+    /**
+     * @var int `新`标记
+     */
+    public static $NEW_TAG = 3;
+    /**
+     * @var int `滞`标记
+     */
+    public static $STRAND_TAG = 2;
+    /**
+     * @var int `无`标记
+     */
+    public static $NO_STATE_TAG = 1;
+    /**
+     * @var int 默认标记
+     */
+    public static $DEFAULT_TAG = 0;
 
     static public $enums = [
         'status' => [
@@ -74,6 +119,7 @@ class WorkOrder extends Model
         ],
     ];
 
+
     function __construct(array $attributes = [])
     {
         foreach (self::$enums as &$enum) {
@@ -196,111 +242,109 @@ class WorkOrder extends Model
     public function defaultWith(): array
     {
         return ['owner', 'logistic', 'issueType', 'creator', 'lastHandler', 'details' => function ($query) {
-            return $query->with(['commodities.commodity', 'logs' => function($query){
+            return $query->with(['commodities.commodity', 'logs' => function ($query) {
                 return $query->with('creator')->orderByDesc('created_at');
             }, 'images.uploadFile', 'issueType', 'processLogs' => function ($query) {
                 return $query->with('user')->orderByDesc('created_at');
             }]);
         },
-'reviewer',
-'order.packages',
-'orderIssue' => function ($query)
-{
-    /** @var Builder $query */
-    $query->with(['issueType', 'logs' => function ($query) {
-        if (Gate::denies('订单管理-问题件-客户不可见')) {
-            $query->with('user')->orderByDesc('created_at');
-        } else {
-            $query->with('user')->where('tag', '=', 0)->orderByDesc('created_at');
-        }
-    }]);
-}];
-}
+            'reviewer',
+            'order.packages',
+            'orderIssue' => function ($query) {
+                /** @var Builder $query */
+                $query->with(['issueType', 'logs' => function ($query) {
+                    if (Gate::denies('订单管理-问题件-客户不可见')) {
+                        $query->with('user')->orderByDesc('created_at');
+                    } else {
+                        $query->with('user')->where('tag', '=', 0)->orderByDesc('created_at');
+                    }
+                }]);
+            }];
+    }
 
-public
-function loadDefaultWith()
-{
-    $this->loadMissing($this->defaultWith());
-}
+    public function loadDefaultWith()
+    {
+        $this->loadMissing($this->defaultWith());
+    }
 
-public
-function notification()
-{
-    $user = Auth::user();
-    $this->loadMissing('owner', 'order');
-    $remark = $this->remark;
-    $ownerName = $this->owner->name ?? '';
-    $clientCode = $this->order->client_code ?? '';
-    $msg = $user["name"] . "建立了新工单<br/>" . $ownerName . ":" . $clientCode . "<br/>" . $remark;
-    NotificationService::SingleRegister($msg, $clientCode, "订单管理-问题件");
-}
+    public function notification()
+    {
+        $user = Auth::user();
+        $this->loadMissing('owner', 'order');
+        $remark = $this->remark;
+        $ownerName = $this->owner->name ?? '';
+        $clientCode = $this->order->client_code ?? '';
+        $msg = $user["name"] . "建立了新工单<br/>" . $ownerName . ":" . $clientCode . "<br/>" . $remark;
+        NotificationService::SingleRegister($msg, $clientCode, "订单管理-问题件");
+    }
 
-public
-function saveWorkOrderDetail($params)
-{
-    $param = (new WorkOrderDetail($params))->getAttributes();
-    $this->details()->create($param);
-    $this->loadMissing('details');
-}
+    public function saveWorkOrderDetail($params)
+    {
+        $param = (new WorkOrderDetail($params))->getAttributes();
+        $this->details()->create($param);
+        $this->loadMissing('details');
+    }
 
-// 工单完结
-public
-function end()
-{
-    $this->update(['status' => 5, 'work_order_status' => 0]);
-}
+    // 工单完结
+    public function end()
+    {
+        $this->update(['status' => 5, 'work_order_status' => 0]);
+    }
 
-/**
- * 工单状态
- */
-public
-function changeStatus($status)
-{
-    $this->status = $status;
-    $this->update();
-}
+    /**
+     * 工单状态
+     */
+    public function changeStatus($status)
+    {
+        $this->status = $status;
+        $this->update();
+    }
 
-/**
- * 处理进度
- */
-public
-function changeProcessProgress($process_progress)
-{
-    $this->update(['process_progress' => $process_progress]);
-}
+    /**
+     * 处理进度
+     */
+    public function changeProcessProgress($process_progress)
+    {
+        $this->update(['process_progress' => $process_progress]);
+    }
 
-/**
- * 工单状态 and 处理状态 and 处理人
- * @param $status
- * @param $process_progress
- * @param $last_status
- */
-public
-function change($status, $process_progress, $last_status)
-{
-    $this->last_status = $last_status;
-    $this->status = $status;
-    $this->process_progress = $process_progress;
-    $this->last_handler_id = Auth::id();
-    $this->update();
-}
+    /**
+     * 工单状态 and 处理状态 and 处理人
+     * @param $status
+     * @param $process_progress
+     * @param $last_status
+     */
+    public function change($status, $process_progress, $last_status)
+    {
+        $this->last_status = $last_status;
+        $this->status = $status;
+        $this->process_progress = $process_progress;
+        $this->last_handler_id = Auth::id();
+        $this->update();
+    }
 
-public
-function syncIntercept()
-{
-    if ($this->status === '完成') return;
-    /** @var WorkOrderDetail $detail */
-    $detail = $this->details()->where('order_issue_type_id', $this->order_issue_type_id)
-        ->whereIn('status', [1, 2, 3, 4, 5])
-        ->orderByDesc('created_at')->first();
-    if (!$detail) return;
-    app(WorkOrderLogService::class)->createLog($detail, '终审', '自动终审');
-    $detail->change('待货主完结', '成功已退回,不赔偿', '宝时终审');
-    $this->change('待货主完结', '成功已退回,不赔偿', '宝时终审');
-    $this->update([
-        'owner_tag' => 2,
-        'logistic_tag' => 0,
-        'bao_shi_tag' => 0,
-    ]);
-}
+    public function syncIntercept()
+    {
+        if ($this->status === '完成') return;
+        /** @var WorkOrderDetail $detail */
+        $detail = $this->details()->where('order_issue_type_id', $this->order_issue_type_id)
+            ->whereIn('status', [1, 2, 3, 4, 5])
+            ->orderByDesc('created_at')->first();
+        if (!$detail) return;
+        $process_progress = '成功已退回,不赔偿';
+        $detail->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $process_progress,
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+        ]);
+        $this->update([
+            'status' => WorkOrder::$TO_BO_OWNER_END_STATUS,
+            'process_progress' => $process_progress,
+            'last_status' => WorkOrder::$BAO_SHI_REVIEW_STATUS,
+            'owner_tag' => WorkOrder::$STRAND_TAG,
+            'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+        ]);
+        app(WorkOrderLogService::class)->createLog($detail, '终审', '自动终审');
+    }
 }

+ 1 - 1
resources/views/order/workOrder/_process_logs.blade.php

@@ -45,7 +45,7 @@
                     <td style="max-width: 35px;min-width: 35px;" class="m-0 p-0 border-0">
                         <button type="button"
                                 class="btn btn-sm btn-outline-danger m-0 del-btn invisible"
-                                @click="orderIssueVue.destroyLog(log,item.process_logs,logIndex)">
+                                @click="destroyProcessLog(item,log,logIndex)">
                         </button>
                     </td>

+ 21 - 0
resources/views/order/workOrder/index.blade.php

@@ -3232,6 +3232,27 @@
                         }
                     });
                 },
+                destroyProcessLog(item,log,index){
+                    if(!confirm('是否删除当前记录'))return;
+                    let url = "{{route('workOrder.processLog.destroyApi')}}"
+                    let data = {
+                        id:log.id
+                    };
+                    this.waitingTempTip('处理中');
+                    window.axios.post(url,data).then(res=>{
+                        window.tempTip.cancelWaitingTip()
+                        if (res.data.success){
+                            this.successTempTip('处理完成');
+                            item.process_logs.splice(index,1);
+                            this.$forceUpdate();
+                            return;
+                        }
+                        this.errorTempTip(res.data.message ?res.data.message :'处理异常刷新后重试');
+                    }).catch(err=>{
+                        window.tempTip.cancelWaitingTip()
+                        this.errorTempTip(err)
+                    })
+                }
             },
         });
     </script>

+ 1 - 0
routes/apiLocal.php

@@ -346,6 +346,7 @@ Route::prefix('workOrder')->group(function(){
         Route::post('/store/logistic','WorkOrderProcessLogController@logisticStoreApi')->name('workOrder.processLog.logisticStoreApi');
         Route::post('/store/baoShi','WorkOrderProcessLogController@baoShiStoreApi')->name('workOrder.processLog.baoShiStoreApi');
         Route::post('/batchStore','WorkOrderProcessLogController@batchStoreApi')->name('workOrder.processLog.batchStore');
+        Route::post('/destroy','WorkOrderProcessLogController@destroyApi')->name('workOrder.processLog.destroyApi');
     });
 
     Route::post('updateIssueType','WorkOrderController@updateIssueTypeApi')->name('workOrder.updateIssueTypeApi');                // 修改问题类型