Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

yuang 4 жил өмнө
parent
commit
3345fd55e9

+ 0 - 3
app/Console/Commands/SyncWMSOrderTask.php

@@ -9,7 +9,6 @@ use App\ValueStore;
 use Carbon\Carbon;
 use Illuminate\Console\Command;
 use Illuminate\Support\Facades\Cache;
-use Illuminate\Support\Facades\Log;
 
 class SyncWMSOrderTask extends Command
 {
@@ -62,13 +61,11 @@ class SyncWMSOrderTask extends Command
         $start = (string)$start;
         Cache::put($this->last_start_key,$start);
         ValueStore::query()->where('name',$this->last_start_key)->update(['value'=>$start]);
-        Log::info("订单同步开始时间",['date' => $start]);
         $this->syncCreatedOrder();
         $this->syncUpdatedOrder();
         $end = (string)Carbon::now();
         Cache::put($this->last_end_key,$end);
         ValueStore::query()->where('name',$this->last_end_key)->update(['value'=>$end]);
-        Log::info("订单同步结束时间",['date' => $end]);
     }
 
     public function syncCreatedOrder()

+ 21 - 1
app/Filters/WorkOrderFilters.php

@@ -5,11 +5,13 @@ namespace App\Filters;
 
 use App\Order;
 use App\OrderIssue;
+use App\OrderIssueProcessLog;
 use App\OrderIssueType;
 use App\OrderPackage;
 use App\Traits\ModelSearchWay;
 use App\User;
 use App\WorkOrder;
+use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Auth;
@@ -40,7 +42,8 @@ class WorkOrderFilters
         'client_code',
         'is_end',
         'status',
-        'process_progress'
+        'process_progress',
+        'order_issue_log'
     ];
     protected $array_filter;
     protected $params = [];
@@ -49,6 +52,9 @@ class WorkOrderFilters
     protected $orderQuery;
     protected $orderPackageQuery;
     protected $issueTypeQuery;
+    protected $orderIssueLogQuery;
+
+
 
     public function __construct(Request $request)
     {
@@ -200,6 +206,14 @@ class WorkOrderFilters
         return $this->issueTypeQuery;
     }
 
+    public function getOrderIssueLogQuery(): Builder
+    {
+        if (!$this->orderIssueLogQuery) {
+            $this->orderIssueLogQuery = OrderIssueProcessLog::query()->select('order_issue_id');
+        }
+        return $this->orderIssueLogQuery;
+    }
+
     public function id($id)
     {
         if (is_array($id)) $this->queryBuilder->whereIn('work_orders.id', $id);
@@ -300,6 +314,12 @@ class WorkOrderFilters
         $this->searchWay($this->queryBuilder,$process_progress,'work_orders.process_progress');
     }
 
+    public function order_issue_log($log_content){
+        $order_issue_process_log_query = OrderIssueProcessLog::query()->select('order_issue_id')->where('content', 'like', $log_content);
+        $order_issue_query = OrderIssue::query()->select('order_id')->whereIn('id',$order_issue_process_log_query);
+        $this->queryBuilder->whereIn('order_id',$order_issue_query);
+    }
+
     public function status($status){
         $status_list = [];
         if ($status == '承运商处理'){

+ 1 - 1
app/Http/Controllers/StorageController.php

@@ -287,7 +287,7 @@ SQL;
                     $modelMap[$model->id] = $model->commodity->maximum;
                 }
                 $orderBy.= " END";
-                $boxes = MaterialBox::query()->whereIn("code",$codes)->orderByRaw($orderBy)->lockForUpdate()->get();
+                $boxes = MaterialBox::query()->whereIn("code",$codes)->orderByRaw($orderBy)->get();
                 //筛选下海柔可用箱
                 list($codes,$notCodes) = app("MaterialBoxService")->checkHaiQ(array_column($boxes->toArray(),"code"));
                 if (!$codes)$boxes = new \Illuminate\Database\Eloquent\Collection();

+ 1 - 1
app/Services/OwnerAreaReportService.php

@@ -60,7 +60,7 @@ class OwnerAreaReportService
         $area = $this->query(OwnerAreaReport::query(),$params)->with("ownerStoragePriceModel")->lockForUpdate()->first();
         try{
             if ($values["accounting_area"] ?? null && $area->accounting_area != $values["accounting_area"]){
-                $report = OwnerBillReport::query()->lockForUpdate()->where("owner_id",$area->owner_id)
+                $report = OwnerBillReport::query()->where("owner_id",$area->owner_id)
                     ->where("counting_month",'like',$area->counting_month."%")->first();
                 if ($report){
                     if (!$area->ownerStoragePriceModel)return false;

+ 1 - 1
app/Services/OwnerPriceOperationService.php

@@ -259,7 +259,7 @@ class OwnerPriceOperationService
             DB::beginTransaction();
             //此处暂时未使用cache的互斥锁 使用sql行锁代替下 防止缓存击穿
             $pivot = app(CacheService::class)->getOrExecute($key,function ()use($key,$targetValue,&$sign,$rule,$owner){
-                return DB::selectOne(DB::raw("SELECT * FROM owner_price_operation_owner WHERE owner_price_operation_id = ? AND owner_id = ? for update"),[$rule->id,$owner]);
+                return DB::selectOne(DB::raw("SELECT * FROM owner_price_operation_owner WHERE owner_price_operation_id = ? AND owner_id = ? "),[$rule->id,$owner]);
             },1000);
             if ($pivot && (!$pivot->discount_date || substr($pivot->discount_date,0,7)!=$month || $pivot->target_value < $targetValue)){
                 //未被标记过处理时间或处理时间不为本月,或上次处理值过期,处理历史即时账单

+ 1 - 0
app/Services/WorkOrderInterceptService.php

@@ -93,6 +93,7 @@ class WorkOrderInterceptService extends WorkOrderService
      */
     public function autoReviewIntercept(WorkOrder $workOrder)
     {
+        /** @var WorkOrderDetail $detail */
         $issueType = $this->issueTypeService->firstOrCreate(['name' => '拦截']);
         $detail = $workOrder->details()->where('order_issue_type_id',$issueType->id)->orderByDesc('created_at')->first();
         if (!$detail) return;

+ 12 - 28
app/Services/WorkOrderService.php

@@ -5,8 +5,10 @@ namespace App\Services;
 use App\OracleDOCOrderHeader;
 use App\Order;
 use App\OrderIssue;
+use App\OrderIssueRejectedBill;
 use App\OrderIssueType;
 use App\OrderPackage;
+use App\RejectedBill;
 use App\Traits\ServiceAppAop;
 use App\WorkOrder;
 use App\WorkOrderDetail;
@@ -275,33 +277,15 @@ class WorkOrderService
 
     public function syncWorkOrder($rejectedBill)
     {
-        $logistic_number_return  = $rejectedBill->logistic_number_return;
-        /**
-         * @var WorkOrder $workOrder
-         */
-        $workOrder = WorkOrder::query()->where('order_id', function ($query)use($logistic_number_return) {
-            $query->from('order_packages')->selectRaw('order_id')->where('logistic_number', $logistic_number_return);
-        })->orderByDesc('id')->first();
-        if (!$workOrder){
-            $orderHeader = OracleDOCOrderHeader::query()->selectRaw('OrderNO')->where('SoReference1', function ($query) use ($logistic_number_return) {
-                $query->select('AsnReference2')->from('DOC_ASN_HEADER')->where('AsnReference3', $logistic_number_return)->first();
-            })->first();
-            if (!$orderHeader) return;
-            $workOrder = WorkOrder::query()->where('order_id', function ($query) use ($orderHeader) {
-                $query->from('orders')->select('id')->where('code', $orderHeader->orderno);
-            })->orderByDesc('id')->first();
-        }
-        if($workOrder){
-            $workOrder->is_new_rejecting =1;
-            $workOrder->save();
-            $orderIssue = $rejectedBill->orderIssue;
-            if($orderIssue->rejecting_status == '全部退回') {
-                /**
-                 * @var WorkOrderInterceptService $workOrderInterceptService
-                 */
-                $workOrderInterceptService = app(WorkOrderInterceptService::class);
-                $workOrderInterceptService->autoReviewIntercept($workOrder);
-            }
-        }
+        /** @var OrderIssue $order_issue */
+        $orderIssueRejectedBill = OrderIssueRejectedBill::query()->where('logistic_number_return',$rejectedBill['logistic_number_return'])->first();
+        $order_issue = OrderIssue::query()->find($orderIssueRejectedBill->order_issue_id);
+        if (!$order_issue || $order_issue->rejecting_status !== '全部退回') return ;
+        /** @var WorkOrderInterceptService $workOrderInterceptService */
+        $workOrderInterceptService = app(WorkOrderInterceptService::class);
+        /** @var WorkOrder $workOrder */
+        $workOrder = WorkOrder::query()->where('order_id',$order_issue->order_id)->orderByDesc('created_at')->first();
+        if (!$workOrder)return ;
+        $workOrderInterceptService->autoReviewIntercept($workOrder);
     }
 }

+ 35 - 29
resources/views/order/workOrder/index.blade.php

@@ -456,36 +456,41 @@
                     {
                         name: 'process_progress', type: 'select', placeholder: '当前进度',
                         data: [
-                            {name: '已处理', value: '已处理'},
-                            {name: '已签收', value: '已签收'},
-                            {name: '拦截成功', value: '拦截失败'},
-                            {name: '拦截失败', value: '拦截失败'},
-
-                            {name: '已处理', value: '已处理'},
-                            {name: '无法更改', value: '无法更改'},
-                            {name: '更改成功', value: '更改成功'},
-                            {name: '更改失败', value: '更改失败'},
-
-                            {name: '已处理', value: '已处理'},
-                            {name: '已拦截', value: '已拦截'},
-                            {name: '丢件赔偿', value: '丢件赔偿'},
-                            {name: '签收成功', value: '签收成功'},
-
-                            {name: '已核实', value: '已核实'},
-                            {name: '补发', value: '补发'},
-                            {name: '不补发', value: '不补发'},
-                            {name: '已补发', value: '已补发'},
-                            {name: '已入库', value: '已入库'},
-
-                            {name: '核实全部破损', value: '核实全部破损'},
-                            {name: '核实部分破损', value: '核实部分破损'},
-                            {name: '核实未破损', value: '核实未破损'},
-                            {name: '待商家处理', value: '待商家处理'},
-                            {name: '待终审', value: '待终审'},
-                            {name: '完结', value: '完结'},
+                            {name:'商家创建',value:'商家创建'},
+                            {name:'宝时创建',value:'宝时创建'},
+                            {name:'成功已退回,不赔偿',value:'成功已退回,不赔偿'},
+                            {name:'拦截在途丢件,赔偿',value:'拦截在途丢件,赔偿'},
+                            {name:'无法拦截',value:'无法拦截'},
+                            {name:'已签收',value:'已签收'},
+                            {name:'已退回',value:'已退回'},
+                            {name:'更改成功',value:'更改成功'},
+                            {name:'更改失败',value:'更改失败'},
+                            {name:'丢件赔偿',value:'丢件赔偿'},
+                            {name:'签收成功',value:'签收成功'},
+                            {name:'已补发',value:'已补发'},
+                            {name:'已入库',value:'已入库'},
+                            {name:'全部赔偿',value:'全部赔偿'},
+                            {name:'部分赔偿',value:'部分赔偿'},
+                            {name:'不赔偿',value:'不赔偿'},
+                            {name:'拦截失败',value:'拦截失败'},
+                            {name:'拦截退回中',value:'拦截退回中'},
+                            {name:'已处理',value:'已处理'},
+                            {name:'无法更改',value:'无法更改'},
+                            {name:'已处理',value:'已处理'},
+                            {name:'已拦截',value:'已拦截'},
+                            {name:'核实全部破损',value:'核实全部破损'},
+                            {name:'核实部分破损',value:'核实部分破损'},
+                            {name:'核实未破损',value:'核实未破损'},
+                            {name:'正常派送',value:'正常派送'},
+                            {name:'无法取消拦截',value:'无法取消拦截'},
+                            {name:'宝时创建',value:'宝时创建'},
+                            {name:'待终审',value:'待终审'},
+                            {name:'终审完成',value:'终审完成'},
                         ]
                     },
                     {name: 'is_end', type: 'checkbox', tip: '是否已拦截', data: [{name: 'ture', value: '已完成'}]},
+                ],[
+                    {name: 'order_issue_log', type: 'input', placeholder: '问题件处理日志'},
                 ]];
                 this.form = new query({
                     el: '#form_div',
@@ -694,6 +699,7 @@
                     workOrder.pending_detail = this.groupPendingDetail(workOrder);
                     workOrder.order_issue ? (workOrder.order_issue.log_is_show = false) : '';
                     workOrder.logistic_numbers = this.groupLogisticNumber(workOrder);
+                    workOrder.orderno = workOrder.order ? workOrder.order.code : '';
                 },
                 groupPendingDetail(workOrder) {
 
@@ -726,11 +732,11 @@
                 groupCommodities(workOrder, isCurrent = true) {
                     let commodities = [];
                     workOrder.details.forEach(detail => {
-                        let commoditiy_itmes = detail.commodities.map(item => {
+                        let commodity_items = detail.commodities.map(item => {
                             item.issue_type_name = detail.issue_type ? detail.issue_type.name : '';
                             return item;
                         });
-                        commodities.push(...(commoditiy_itmes ?? []))
+                        commodities.push(...(commodity_items ?? []))
                     });
                     return commodities.filter(item => {
                         if (!isCurrent) {