Sfoglia il codice sorgente

Merge branch 'master' of ssh://47.103.131.176:10022/var/git/bswas

zhouzhendong 4 anni fa
parent
commit
087db67587

+ 1 - 1
app/Services/ReceivingTaskService.php

@@ -126,7 +126,7 @@ class ReceivingTaskService
         $yesterday = Carbon::now()->subDays(1)->format("Y-m-d");
         ReceivingTask::query()
             ->where('created_at', '>=', $yesterday . ' 00:00:00')
-            ->where('created_at', '<=', $yesterday . ' 23.59.59')
+            ->where('created_at', '<=', $yesterday . ' 23:59:59')
             ->whereIn('status', ['创建', '进行中'])
             ->update(['status' => '超时完成']);
 

+ 12 - 12
app/Services/RejectedBillService.php

@@ -121,18 +121,18 @@ class RejectedBillService
                     'is_loaded' => 1,
                     'updated_at' => $updated_at,
                 ];
-                if (!$rejectedBill && $data->customerid && $data->notes){
-                    $checkedNumber=$this->screenCheckNumber($data->customerid,$data->notes);
-                    if (!$checkedNumber)continue;
-                    $rejects=RejectedBill::query()->where('checked_numbers',$checkedNumber)->get();
-                   foreach ($rejects as $reject){
-                       $updateParams[] = [
-                           'id'=>$reject->id,
-                           'is_loaded' => 1,
-                           'updated_at' => $updated_at,
-                       ];
-                   }
-                }
+//                if (!$rejectedBill && $data->customerid && $data->notes){
+//                    $checkedNumber=$this->screenCheckNumber($data->customerid,$data->notes);
+//                    if (!$checkedNumber)continue;
+//                    $rejects=RejectedBill::query()->where('checked_numbers',$checkedNumber)->get();
+//                   foreach ($rejects as $reject){
+//                       $updateParams[] = [
+//                           'id'=>$reject->id,
+//                           'is_loaded' => 1,
+//                           'updated_at' => $updated_at,
+//                       ];
+//                   }
+//                }
                unset($result);
             }
         }

+ 2 - 0
app/Services/WorkOrderExpressAbnormalService.php

@@ -212,6 +212,8 @@ class WorkOrderExpressAbnormalService extends WorkOrderService
             'status' => '未同步',
             'type' => '结束',
         ]);
+        $this->endOrderIssueAndSyncProcessLogs($detail);
+        $this->logService->createLog($detail, '终审', $process_progress.'-宝时终审');
     }
 
 }

+ 39 - 9
app/Services/WorkOrderService.php

@@ -363,7 +363,11 @@ class WorkOrderService
          * @var WorkOrder $work_order
          */
         $work_order = $detail->workOrder;
-        $order_issue = OrderIssue::query()->where('order_id', $work_order->order_id)->first();
+        $order_issue = OrderIssue::query()->withTrashed()->where('order_id', $work_order->order_id)->first();
+        if($order_issue->deleted_at){
+            $order_issue->restore();
+        }
+        $orderIssueType = app(OrderIssueTypeService::class)->firstOrCreate(['name' => '错漏发']);
         if (!$order_issue) {
             $order_issue = OrderIssue::query()->create([
                 'order_id' => $work_order->order_id,
@@ -371,6 +375,7 @@ class WorkOrderService
                 'imported_status' => '正常',
                 'order_issue_type_id' => $detail->order_issue_type_id,
             ]);
+            $order_issue->update(['created_at' => $detail->created_at]);
         }
 
         $order_issue->update([
@@ -381,16 +386,18 @@ class WorkOrderService
             'user_owner_group_id' => $work_order->user_owner_group_id,
         ]);
 
-        $work_order_user_workgroup_ids = $work_order->userWorkGroups()->get()->map(function($item){
+        $work_order_user_workgroup_ids = $work_order->userWorkGroups()->get()->map(function ($item) {
             return $item->id;
         })->toArray();
 
-        $order_issue_work_groups = $order_issue->userWorkgroups()->get()->map(function($item){
+        $order_issue_work_groups = $order_issue->userWorkgroups()->get()->map(function ($item) {
             return $item->id;
-        } )->toArray();
-        $order_issue->userWorkgroups()->attach(array_diff($work_order_user_workgroup_ids,$order_issue_work_groups));
+        })->toArray();
+        $order_issue->userWorkgroups()->attach(array_diff($work_order_user_workgroup_ids, $order_issue_work_groups));
         $process_logs = $detail->processLogs()->where('status', '未同步')->get();
-        $order_issue->logs()->insert($process_logs->map((function ($process_log) use ($order_issue) {
+
+
+        $processLogs = $process_logs->map((function ($process_log) use ($order_issue) {
             return [
                 'order_issue_id' => $order_issue->id,
                 'user_id' => $process_log->user_id,
@@ -400,14 +407,37 @@ class WorkOrderService
                 'type' => $process_log->type,
                 'tag' => $process_log->tag,
             ];
-        }))->toArray());
+        }))->toArray();
+        if ($detail->order_issue_type_id == $orderIssueType->id) {
+            $commodityLog = $detail->commodities()->where('check_result', '!=', '核实未错漏发')->get()->map(function ($item) use ($order_issue) {
+                $count = 0;
+                $abnormalAmount = intval($item->abnormal_amount);
+                $baoShiCheckAmount = intval($item->bao_shi_check_amount);
+                if ($item->abnormal_type === '少发') {
+                    $count = $baoShiCheckAmount  - $abnormalAmount;
+                } else if ($item->abnormal_type === '多发') {
+                    $count =  $abnormalAmount- $baoShiCheckAmount;
+                }
+                return [
+                    'order_issue_id' => $order_issue->id,
+                    'user_id' => Auth::id(),
+                    'content' => $item->sku . ' ' . $item->commodity->name . ' ' . $item->abnormal_type . '(' . $count.')',
+                    'created_at' => $item->updated_at,
+                    'updated_at' => $item->updated_at,
+                    'type' => '处理',
+                    'tag' => 0
+                ];
+            })->toArray();
+            $processLogs = array_merge($commodityLog, $processLogs);
+        }
+        $order_issue->logs()->insert($processLogs);
         $this->orderIssueService->endOrderIssues([$order_issue->id]);
         $detail->processLogs()->where('status', '未同步')->update(['status' => '同步']);
     }
 
-    public function customRejectedStatus($ids,$customRejectedStatus): int
+    public function customRejectedStatus($ids, $customRejectedStatus): int
     {
-        return WorkOrder::query()->whereIn('id',$ids)->update(['custom_rejected_status' => $customRejectedStatus]);
+        return WorkOrder::query()->whereIn('id', $ids)->update(['custom_rejected_status' => $customRejectedStatus]);
     }
 
 }

+ 7 - 7
app/Traits/LogisticSyncTrait.php

@@ -30,6 +30,8 @@ trait LogisticSyncTrait
         }
         /** @var \Carbon\Carbon $sent_at */
         $sent_at = $orderPackage->sent_at;
+        /** @var \Carbon\Carbon $issue_time 订单下发时间 */
+        $issue_time = $orderPackage->order->created_at;
         /**执行该方法时,默认没有异常,
          *1. 之前有异常的件,
          *  1.1 新的状态是无异常的可以更新为正常
@@ -39,22 +41,20 @@ trait LogisticSyncTrait
          *  2.2 新的状态异常更新为对应异常
          */
         $data['exception_status'] = '';
-        $created_at = Carbon::parse($orderPackage->created_at);
         //当天的16:30
         $transfer_status = $data['transfer_status'] ?? [];
         if (empty($sent_at)) {//没复核
             if (empty($transfer_status)) {//没有路由信息
                 //延迟发货
-                $created_at_clone = deep_copy($created_at);
-                if ($created_at->gt($created_at_clone->startOfDay()->addHours(16)->addMinutes(30))) {//下午16.30的单
-                    $created_at_clone = deep_copy($created_at);
-                    if ($created_at_clone->addDay()->endOfDay()->lt(now())) {//超过第二天的24时
-                        $created_at_clone = deep_copy($created_at);
+                $issue_time_clone = deep_copy($issue_time);
+                if ($issue_time->gt($issue_time_clone->startOfDay()->addHours(16)->addMinutes(30))) {//下午16:30的单
+                    $issue_time_clone = deep_copy($issue_time);
+                    if ($issue_time_clone->addDay()->endOfDay()->lt(now())) {//超过第二天的24时
                         $data['exception_status'] = '延迟发货';
                         $data['is_delay_deliver'] = true;
                     }
                 } else {
-                    if ($created_at_clone->endOfDay()->lt(now())) {//超过当天的24时
+                    if ($issue_time_clone->endOfDay()->lt(now())) {//超过当天的24时
                         $data['exception_status'] = '延迟发货';
                         $data['is_delay_deliver'] = true;
                     }

+ 5 - 4
resources/views/order/workOrder/index.blade.php

@@ -1150,7 +1150,7 @@
                             item.issue_type_name = detail.issue_type ? detail.issue_type.name : '';
                             return item;
                         });
-                        commodities.push(...(commodity_items ?? []))
+                        commodities.push(...(commodity_items ?commodity_items: []))
                     });
                     return commodities.filter(item => {
                         if (!isCurrent) {
@@ -1893,8 +1893,8 @@
                         {process_result: '少发,不补发', option: ['已完成入库','完成']},
                         {process_result: '核实未错漏发', option: ['确认未错漏发']},
                     ];
-                    return items.filter(e => process_result === e.process_result).map(e => e.option).shift() ?? [];
-
+                    let shift =  items.filter(e => process_result === e.process_result).map(e => e.option).shift() ;
+                    return shift ? shift : [];
                 },
                 getOwnerMistakeProcessResultInfo(process_result, item) {
                     let items = [
@@ -1904,7 +1904,8 @@
                         {process_result: "少发,不补发", option: ['商家做入库单,选择明细和数量','不入库'],},
                         {process_result: "核实未错漏发", option: ['确认未错漏发'],},
                     ];
-                    let options = items.filter(e => e.process_result === process_result).map(e => e.option).shift() ?? [];
+                    let shift = items.filter(e => e.process_result === process_result).map(e => e.option).shift();
+                    let options = shift  ? shift : []
                     if (options.length === 0) {
                         item.process_result_info = options[0];
                     }