|
|
@@ -32,8 +32,9 @@ class WorkOrderService
|
|
|
* 获取可生成工单的问题件类型
|
|
|
* @return Builder[]|\Illuminate\Database\Eloquent\Collection
|
|
|
*/
|
|
|
- public function getIssueType(){
|
|
|
- return OrderIssueType::query()->whereIn('name',['拦截','信息更改','其他', '快递异常','错漏发','破损'])->get();
|
|
|
+ public function getIssueType()
|
|
|
+ {
|
|
|
+ return OrderIssueType::query()->whereIn('name', ['拦截', '信息更改', '其他', '快递异常', '错漏发', '破损'])->get();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -47,20 +48,20 @@ class WorkOrderService
|
|
|
$work_order_types = [];
|
|
|
$data = Carbon::now();
|
|
|
$creator_id = Auth::user()['id'];
|
|
|
- $parent = WorkOrderType::query()->firstOrCreate(['name' => '订单','prent_id' => 0,'level' => 1]);
|
|
|
+ $parent = WorkOrderType::query()->firstOrCreate(['name' => '订单', 'prent_id' => 0, 'level' => 1]);
|
|
|
foreach ($params as $param) {
|
|
|
- $order = Order::query()->where('code',$param['order_no'])->first();
|
|
|
+ $order = Order::query()->where('code', $param['order_no'])->first();
|
|
|
$type_name = $param['order_issue_type'];
|
|
|
if (!$param['order_issue_type']) {
|
|
|
$order_issue_type_id = 0;
|
|
|
$work_order_type_id = 0;
|
|
|
} else {
|
|
|
- if (!array_key_exists($type_name,$types)){
|
|
|
- $types[$type_name] = OrderIssueType::query()->where('name',$type_name)->first();
|
|
|
+ if (!array_key_exists($type_name, $types)) {
|
|
|
+ $types[$type_name] = OrderIssueType::query()->where('name', $type_name)->first();
|
|
|
$work_order_type_name = $this->work_type_relation[$type_name] ?? $type_name;
|
|
|
- $work_order_types[$type_name] = WorkOrderType::query()->firstOrCreate(
|
|
|
+ $work_order_types[$type_name] = WorkOrderType::query()->firstOrCreate(
|
|
|
['name' => $work_order_type_name],
|
|
|
- ['prent_id' =>$parent['id'],'table_name' => 'orders','level' => 2]
|
|
|
+ ['prent_id' => $parent['id'], 'table_name' => 'orders', 'level' => 2]
|
|
|
);
|
|
|
}
|
|
|
$order_issue_type_id = $types[$type_name]['id'] ?? 0;
|
|
|
@@ -94,15 +95,15 @@ class WorkOrderService
|
|
|
'order_issue_type_id' => $order_issue_type_id ?? 0,
|
|
|
'uniquely_tag' => $order['code'] ?? null,
|
|
|
'status' => 1,
|
|
|
- 'created_at' => $data,
|
|
|
- 'updated_at' => $data,
|
|
|
+ 'created_at' => $data,
|
|
|
+ 'updated_at' => $data,
|
|
|
];
|
|
|
}
|
|
|
- if (isset($inner_params)){
|
|
|
+ if (isset($inner_params)) {
|
|
|
WorkOrder::query()->insert($inner_params);
|
|
|
return ['success' => true];
|
|
|
}
|
|
|
- return ['success' => false,'message' => '参数异常'];
|
|
|
+ return ['success' => false, 'message' => '参数异常'];
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -112,12 +113,13 @@ class WorkOrderService
|
|
|
*/
|
|
|
public function review($wordOrder): array
|
|
|
{
|
|
|
- $wordOrder->update(['reviewer_id' => Auth::user()['id'], 'review_at' => Carbon::now(), 'status' => 2,]);
|
|
|
- $wordOrder = WorkOrder::query()->with(['type', 'creator', 'order' => function ($query) {
|
|
|
+ $wordOrder->update(['reviewer_id' => Auth::user()['id'], 'review_at' => Carbon::now(), 'status' => '2',]);
|
|
|
+ $workOrders = WorkOrder::query()->with(['type', 'creator', 'order' => function ($query) {
|
|
|
/** @var $query Builder */
|
|
|
$query->with('packages', 'issue', 'logistic');
|
|
|
- }, 'reviewer'])->find($wordOrder['id']);
|
|
|
- return ['success' => true, 'data' => $wordOrder];
|
|
|
+ }, 'reviewer'])->whereIn('id', [$wordOrder['id']])->get();
|
|
|
+ $this->tags($workOrders);
|
|
|
+ return ['success' => true, 'data' => $workOrders->first()];
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -130,12 +132,13 @@ class WorkOrderService
|
|
|
$ids = $workOrders->map(function ($item) {
|
|
|
return $item->id;
|
|
|
})->toArray();
|
|
|
- WorkOrder::query()->whereIn('id', $ids)->update(['review_at' => Carbon::now(), 'reviewer_id' => Auth::user()['id'],'status' => '2']);
|
|
|
- $wordOrder = WorkOrder::query()->with(['type', 'creator', 'order' => function ($query) {
|
|
|
+ WorkOrder::query()->whereIn('id', $ids)->update(['review_at' => Carbon::now(), 'reviewer_id' => Auth::user()['id'], 'status' => '2']);
|
|
|
+ $wordOrders = WorkOrder::query()->with(['type', 'creator', 'order' => function ($query) {
|
|
|
/** @var $query Builder */
|
|
|
$query->with('packages', 'issue', 'logistic');
|
|
|
- }, 'reviewer'])->find($ids);
|
|
|
- return ['success' => true, 'data' => $wordOrder];
|
|
|
+ }, 'reviewer'])->whereIn('id', $ids)->get();
|
|
|
+ $this->tags($wordOrders);
|
|
|
+ return ['success' => true, 'data' => $wordOrders];
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -153,8 +156,8 @@ class WorkOrderService
|
|
|
'result_explain' => $work_order->remark,
|
|
|
];
|
|
|
}
|
|
|
- if (!isset($inner_params)) return ['success' => false,'message' => '创建问题件失败'];
|
|
|
- return app('OrderIssueService')->buildOrderIssue($inner_params);
|
|
|
+ if (!isset($inner_params)) return ['success' => false, 'message' => '创建问题件失败'];
|
|
|
+ return app('OrderIssueService')->buildOrderIssue($inner_params);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -184,17 +187,18 @@ class WorkOrderService
|
|
|
*/
|
|
|
public function tags(&$workOrders)
|
|
|
{
|
|
|
- $order_ids = $workOrders->map(function($item){
|
|
|
+ $order_ids = $workOrders->map(function ($item) {
|
|
|
return $item->order_id;
|
|
|
});
|
|
|
- $order_issues = OrderIssue::query()->whereIn('order_id',$order_ids)->get();
|
|
|
+ $order_issues = OrderIssue::query()->whereIn('order_id', $order_ids)->get();
|
|
|
+
|
|
|
foreach ($order_issues as $order_issue) {
|
|
|
$codes[$order_issue->order_id] = true;
|
|
|
}
|
|
|
- if (!isset($codes))return;
|
|
|
+ if (!isset($codes)) return;
|
|
|
foreach ($workOrders as &$workOrder) {
|
|
|
- if (array_key_exists($workOrder->order_id,$codes))$workOrder->is_issue_order= true;
|
|
|
- else $workOrder->is_issue_order= false;
|
|
|
+ if (array_key_exists($workOrder->order_id, $codes)) $workOrder->is_issue_order = true;
|
|
|
+ else $workOrder->is_issue_order = false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -205,8 +209,8 @@ class WorkOrderService
|
|
|
*/
|
|
|
public function isIntercept($logistic_number): bool
|
|
|
{
|
|
|
- $package_query = OrderPackage::query()->select('order_id')->where('logistic_number',$logistic_number);
|
|
|
- $order_issue_query = OrderIssueType::query()->select('id')->where('name','拦截');
|
|
|
- return WorkOrder::query()->whereIn('order_id',$package_query)->whereIn('order_issue_type_id',$order_issue_query)->exists();
|
|
|
+ $package_query = OrderPackage::query()->select('order_id')->where('logistic_number', $logistic_number);
|
|
|
+ $order_issue_query = OrderIssueType::query()->select('id')->where('name', '拦截');
|
|
|
+ return WorkOrder::query()->whereIn('order_id', $package_query)->whereIn('order_issue_type_id', $order_issue_query)->exists();
|
|
|
}
|
|
|
}
|