Просмотр исходного кода

Merge branch 'master' into Order_RejectedBill_version1.1

loustwo 4 лет назад
Родитель
Сommit
55c3a5577d

+ 21 - 2
app/Filters/WorkOrderFilters.php

@@ -12,6 +12,7 @@ use App\Shop;
 use App\Traits\ModelSearchWay;
 use App\User;
 use App\WorkOrder;
+use App\WorkOrderProcessLog;
 use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Http\Request;
@@ -48,6 +49,7 @@ class WorkOrderFilters
         'log_content',
         'tags',
         'shop_name',
+        'work_order_process_log',
     ];
     protected $array_filter;
     protected $params = [];
@@ -59,8 +61,7 @@ class WorkOrderFilters
     protected $orderIssueLogQuery;
     protected $orderIssueQuery;
     protected $shopQuery;
-
-
+    protected $workOrderProcessLogQuery;
 
     public function __construct(Request $request)
     {
@@ -181,6 +182,11 @@ class WorkOrderFilters
         if ($this->orderIssueQuery){
             $this->queryBuilder->whereIn('work_orders.order_id', $this->orderIssueQuery);
         }
+
+        if($this->workOrderProcessLogQuery){
+            $this->queryBuilder->whereIn('work_orders.id', $this->workOrderProcessLogQuery);
+        }
+
         $this->orderByTag();
     }
 
@@ -246,6 +252,14 @@ class WorkOrderFilters
         return $this->shopQuery;
     }
 
+    public function getWorkOrderProcessLogQuery(): Builder
+    {
+        if (!$this->workOrderProcessLogQuery){
+            $this->workOrderProcessLogQuery = WorkOrderProcessLog::query()->select('work_order_id');
+        }
+        return $this->workOrderProcessLogQuery;
+    }
+
     public function id($id)
     {
         if (is_array($id)) $this->queryBuilder->whereIn('work_orders.id', $id);
@@ -404,4 +418,9 @@ class WorkOrderFilters
     {
         $this->searchWay($this->getShopQuery(),$shop_name,'shops.name');
     }
+
+    public function work_order_process_log($work_order_process_log)
+    {
+        $this->searchWay($this->getWorkOrderProcessLogQuery(),$work_order_process_log,'work_order_process_logs.content');
+    }
 }

+ 17 - 1
app/Http/Controllers/ReceivingTaskController.php

@@ -6,6 +6,7 @@ use App\DeliveryAppointmentCar;
 use App\Filters\ReceivingTaskFilters;
 use App\Http\Requests\Api\ReceivingTaskRequest;
 use App\ReceivingTask;
+use App\ReceivingTaskItem;
 use App\Services\OwnerService;
 use App\Services\ReceivingTaskService;
 use App\Warehouse;
@@ -66,8 +67,23 @@ class ReceivingTaskController extends Controller
             return ['success' => false, 'errors' => ['appointment_number' => ['预约号没有对应的Asn号']]];
         }
 
+        $asn_nos = array_unique(array_merge($ans_numbers, $request->input('asn_nos') ?? []));
+
+        if (count($asn_nos) == 0){
+            return ['success' => false, 'errors' => ['appointment_number' => ['预约号没有对应的Asn号']]];
+        }
+
+        $receiving_task_items = ReceivingTaskItem::query()->whereIn('asn_no',$request->input('asn_nos') ?? [])->get()->map(function($item){
+            return $item->asn_no;
+        })->toArray();
+        if (count($receiving_task_items) >0 ){
+            return [
+                'success' => false,'errors' => ['appointment_number' => '勾选的asn号'.json_encode($receiving_task_items).'已再其他开单入库中有关联']
+            ];
+        }
+
         if ($delivery_appointment_car->deliveryAppointment->owner_id != $request->input('owner_id')) {
-            return ['success' => false, 'errors' => ['appointment_number' => ['预约号与货主未对应']]];
+            return ['success' => false, 'errors' => ['appointment_number' => ['预约号与货主未必填项']]];
         }
 
         if (ReceivingTask::query()->where('delivery_appointment_car_id', $delivery_appointment_car->id)->exists()) {

+ 3 - 0
app/Services/WorkOrderCancelInterceptService.php

@@ -61,6 +61,7 @@ class WorkOrderCancelInterceptService extends WorkOrderService
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
         $detail->update([
@@ -112,6 +113,7 @@ class WorkOrderCancelInterceptService extends WorkOrderService
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
@@ -159,6 +161,7 @@ class WorkOrderCancelInterceptService extends WorkOrderService
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,

+ 4 - 0
app/Services/WorkOrderDamageService.php

@@ -67,6 +67,7 @@ class WorkOrderDamageService extends WorkOrderService
             'logistic_tag' => WorkOrder::$NEW_TAG,
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
         $detail->update([
@@ -107,6 +108,7 @@ class WorkOrderDamageService extends WorkOrderService
             'process_progress' => $process_progress,
             'last_status' => WorkOrder::$DEFAULT_STATUS,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
@@ -144,6 +146,7 @@ class WorkOrderDamageService extends WorkOrderService
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
@@ -180,6 +183,7 @@ class WorkOrderDamageService extends WorkOrderService
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,

+ 4 - 0
app/Services/WorkOrderExpressAbnormalService.php

@@ -71,6 +71,7 @@ class WorkOrderExpressAbnormalService extends WorkOrderService
             'logistic_tag' => WorkOrder::$NEW_TAG,
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail = $this->detailService->createWorkOrderDetail($work_order, $params);
         $detail->update([
@@ -109,6 +110,7 @@ class WorkOrderExpressAbnormalService extends WorkOrderService
             'status' => WorkOrder::$LOGISTIC_HANDLER_STATUS,
             'process_progress' => $process_progress,
             'last_status' => WorkOrder::$DEFAULT_STATUS,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
@@ -143,6 +145,7 @@ class WorkOrderExpressAbnormalService extends WorkOrderService
             'bao_shi_tag' => WorkOrder::$STRAND_TAG,
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
@@ -177,6 +180,7 @@ class WorkOrderExpressAbnormalService extends WorkOrderService
             'owner_tag' => WorkOrder::$STRAND_TAG,
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,

+ 3 - 0
app/Services/WorkOrderInformationChangeService.php

@@ -68,6 +68,7 @@ class WorkOrderInformationChangeService extends WorkOrderService
             'logistic_tag' => WorkOrder::$NEW_TAG,
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+            'last_handler_id' => Auth::id(),
         ]);
 
         $detail = $this->detailService->createWorkOrderDetail($workOrder, $params);
@@ -132,6 +133,7 @@ class WorkOrderInformationChangeService extends WorkOrderService
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
@@ -177,6 +179,7 @@ class WorkOrderInformationChangeService extends WorkOrderService
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,

+ 4 - 1
app/Services/WorkOrderInterceptService.php

@@ -137,6 +137,7 @@ class WorkOrderInterceptService extends WorkOrderService
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$STRAND_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
@@ -183,13 +184,14 @@ class WorkOrderInterceptService extends WorkOrderService
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
 
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
             'work_order_detail_id' => $detail->id,
             'user_id' => Auth::id(),
-            'content' => '完结-拦截工单',
+            'content' => $process_progress.'-拦截工单',
             'status' => '未同步',
             'type' => '结束',
         ]);
@@ -236,6 +238,7 @@ class WorkOrderInterceptService extends WorkOrderService
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,

+ 5 - 0
app/Services/WorkOrderLossService.php

@@ -65,6 +65,7 @@ class WorkOrderLossService extends WorkOrderService
             'owner_tag' => WorkOrder::$NEW_TAG,
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
+            'last_handler_id' => Auth::id(),
         ]);
 
         $detail = $this->detailService->createWorkOrderDetail($work_order, $params);
@@ -112,6 +113,8 @@ class WorkOrderLossService extends WorkOrderService
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
+
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
@@ -147,6 +150,8 @@ class WorkOrderLossService extends WorkOrderService
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
+
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,

+ 7 - 0
app/Services/WorkOrderMistakeService.php

@@ -63,6 +63,7 @@ class WorkOrderMistakeService extends WorkOrderService
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'logistic_handle_tag' =>0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->update([
             'status'=> WorkOrder::$BAO_SHI_HANDLER_STATUS,
@@ -100,6 +101,8 @@ class WorkOrderMistakeService extends WorkOrderService
             'process_progress' => $process_progress,
             'last_status' => WorkOrder::$DEFAULT_STATUS,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
+
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
@@ -135,6 +138,8 @@ class WorkOrderMistakeService extends WorkOrderService
             'bao_shi_tag' => WorkOrder::$DEFAULT_TAG,
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
+
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
@@ -170,6 +175,7 @@ class WorkOrderMistakeService extends WorkOrderService
             'owner_tag' => WorkOrder::$DEFAULT_TAG,
             'logistic_tag' => WorkOrder::$DEFAULT_TAG,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,
@@ -202,6 +208,7 @@ class WorkOrderMistakeService extends WorkOrderService
             'process_progress' => $process_progress,
             'last_status' => WorkOrder::$OWNER_HANDLER_STATUS,
             'work_order_status' => 0,
+            'last_handler_id' => Auth::id(),
         ]);
         $detail->processLogs()->create([
             'work_order_id' => $detail->work_order_id,

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

@@ -641,6 +641,7 @@
                         ],
                     },
                     {name: 'shop_name', type: 'input', placeholder: '商铺名'},
+                    {name: 'work_order_process_log', type: 'input', placeholder: '工单处理日志'},
                 ]];
                 this.form = new query({
                     el: '#form_div',

+ 22 - 2
resources/views/store/receivingTasks/create.blade.php

@@ -57,17 +57,21 @@
                                     <span class="text-danger">*</span>
                                     货主</label>
                                 <div class="form-inline col-8">
-                                    <select class="form-control form-control-sm col-12" name="owner_id" id="owner_id"
+                                    <select class="form-control form-control-sm col-8" name="owner_id" id="owner_id"
                                             :class="{'is-invalid':errors.owner_id}"
                                             @change="getASNDetails"
                                             @input="clearError('owner_id')"
                                             v-model="receiving_task.owner_id">
-                                        <option v-for="item in owners" :value="item.id" v-text="item.name"></option>
+                                        <option v-for="item in filterOwners" :value="item.id" v-text="item.name"></option>
                                     </select>
                                     <div id="validation-owner-id" class="invalid-feedback" v-show="errors.owner_id">
                                         <span v-text="errors.owner_id"></span>
                                     </div>
+                                    <div class="form-inline col-3">
+                                        <input type="text" name="owner_search" id="owner_search" v-model="owner_search" class="form-control form-control-sm">
+                                    </div>
                                 </div>
+
                             </div>
                         </div>
 
@@ -419,6 +423,7 @@
                     @endforeach
                 ],
                 driving_license_image: null,
+                owner_search:null,
                 page_size: 20,
                 pager_count: 0,
                 current_page: 0,
@@ -469,6 +474,21 @@
             mounted() {
                 $("#list").removeClass('d-none');
             },
+            computed:{
+                filterOwners(){
+                    let owners = JSON.parse(JSON.stringify(this.owners));
+                    let owner_name = this.owner_search ? this.owner_search.trim() : '';
+                    if (owner_name === '') return owners;
+                    owners = owners.filter(e=>{
+                        return e.name.includes(owner_name);
+                    });
+                    setTimeout(()=>{
+                        let owner = owners.find(e=>e);
+                        owner ?  this.$set(this.receiving_task,'owner_id',owner.id) : null;
+                    },200);
+                    return owners;
+                },
+            },
             methods: {
                 waitingTempTip(message) {
                     window.tempTip.setIndex(2005);