|
@@ -5,7 +5,6 @@ namespace App\Http\Controllers;
|
|
|
use App\Filters\WorkOrderFilters;
|
|
use App\Filters\WorkOrderFilters;
|
|
|
use App\Logistic;
|
|
use App\Logistic;
|
|
|
use App\OrderIssue;
|
|
use App\OrderIssue;
|
|
|
-use App\OwnerGroup;
|
|
|
|
|
use App\Services\OrderIssueTypeService;
|
|
use App\Services\OrderIssueTypeService;
|
|
|
use App\Services\OrderService;
|
|
use App\Services\OrderService;
|
|
|
use App\Services\OwnerService;
|
|
use App\Services\OwnerService;
|
|
@@ -19,6 +18,7 @@ use App\WorkOrder;
|
|
|
use App\WorkOrderDetail;
|
|
use App\WorkOrderDetail;
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Facades\Gate;
|
|
use Illuminate\Support\Facades\Gate;
|
|
|
|
|
+use Oursdreams\Export\Export;
|
|
|
|
|
|
|
|
class WorkOrderController extends Controller
|
|
class WorkOrderController extends Controller
|
|
|
{
|
|
{
|
|
@@ -77,11 +77,11 @@ class WorkOrderController extends Controller
|
|
|
|
|
|
|
|
$owners = $this->ownerService->getAuthorizedOwners();
|
|
$owners = $this->ownerService->getAuthorizedOwners();
|
|
|
|
|
|
|
|
- $userWorkgroup = UserWorkgroup::query()->select('id','name')->get();
|
|
|
|
|
- $userOwnerGroup = UserOwnerGroup::query()->select('id','name')->get();
|
|
|
|
|
|
|
+ $userWorkgroup = UserWorkgroup::query()->select('id', 'name')->get();
|
|
|
|
|
+ $userOwnerGroup = UserOwnerGroup::query()->select('id', 'name')->get();
|
|
|
|
|
|
|
|
$this->service->tags($workOrders);
|
|
$this->service->tags($workOrders);
|
|
|
- return view('order.workOrder.index', compact('workOrders', 'logistics', 'orderIssueTypes', 'owners','userWorkgroup','userOwnerGroup'));
|
|
|
|
|
|
|
+ return view('order.workOrder.index', compact('workOrders', 'logistics', 'orderIssueTypes', 'owners', 'userWorkgroup', 'userOwnerGroup'));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -200,73 +200,139 @@ class WorkOrderController extends Controller
|
|
|
|
|
|
|
|
public function updateRemissionApi(Request $request): array
|
|
public function updateRemissionApi(Request $request): array
|
|
|
{
|
|
{
|
|
|
- if (Gate::denies('订单管理-工单处理-宝时编辑')){
|
|
|
|
|
- return ['success' => false,'message' => '没有对应权限'];
|
|
|
|
|
|
|
+ if (Gate::denies('订单管理-工单处理-宝时编辑')) {
|
|
|
|
|
+ return ['success' => false, 'message' => '没有对应权限'];
|
|
|
}
|
|
}
|
|
|
- if (!$request->has(['id','column'])){
|
|
|
|
|
- return ['success' => false,'message' => '参数异常'];
|
|
|
|
|
|
|
+ if (!$request->has(['id', 'column'])) {
|
|
|
|
|
+ return ['success' => false, 'message' => '参数异常'];
|
|
|
}
|
|
}
|
|
|
/** @var WorkOrder $workOrder */
|
|
/** @var WorkOrder $workOrder */
|
|
|
$workOrder = WorkOrder::query()->find($request->input('id'));
|
|
$workOrder = WorkOrder::query()->find($request->input('id'));
|
|
|
- if (!$workOrder){
|
|
|
|
|
- return ['success' => false,'message' => '未找到对应的工单'];
|
|
|
|
|
|
|
+ if (!$workOrder) {
|
|
|
|
|
+ return ['success' => false, 'message' => '未找到对应的工单'];
|
|
|
}
|
|
}
|
|
|
$column = $request->input('column');
|
|
$column = $request->input('column');
|
|
|
- $workOrder->update(["{$column}" => $request->input('value')??null]);
|
|
|
|
|
|
|
+ $workOrder->update(["{$column}" => $request->input('value') ?? null]);
|
|
|
return ['success' => true];
|
|
return ['success' => true];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function updateUserOwnerGroupApi(Request $request): array
|
|
public function updateUserOwnerGroupApi(Request $request): array
|
|
|
{
|
|
{
|
|
|
- if (Gate::denies('订单管理-工单处理-宝时编辑')){
|
|
|
|
|
- return ['success' => false,'message' => '没有对应权限'];
|
|
|
|
|
|
|
+ if (Gate::denies('订单管理-工单处理-宝时编辑')) {
|
|
|
|
|
+ return ['success' => false, 'message' => '没有对应权限'];
|
|
|
}
|
|
}
|
|
|
- if (!$request->has(['id','user_owner_group_id'])){
|
|
|
|
|
- return ['success' => false,'message' => '参数异常'];
|
|
|
|
|
|
|
+ if (!$request->has(['id', 'user_owner_group_id'])) {
|
|
|
|
|
+ return ['success' => false, 'message' => '参数异常'];
|
|
|
}
|
|
}
|
|
|
/** @var WorkOrder $workOrder */
|
|
/** @var WorkOrder $workOrder */
|
|
|
$workOrder = WorkOrder::query()->find($request->input('id'));
|
|
$workOrder = WorkOrder::query()->find($request->input('id'));
|
|
|
- if (!$workOrder){
|
|
|
|
|
- return ['success' => false,'message' => '未找到对应的工单'];
|
|
|
|
|
|
|
+ if (!$workOrder) {
|
|
|
|
|
+ return ['success' => false, 'message' => '未找到对应的工单'];
|
|
|
}
|
|
}
|
|
|
- $workOrder->update(['user_owner_group_id'=> $request->input('user_owner_group_id')]);
|
|
|
|
|
|
|
+ $workOrder->update(['user_owner_group_id' => $request->input('user_owner_group_id')]);
|
|
|
return ['success' => true];
|
|
return ['success' => true];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function storeUserWorkGroupApi(Request $request): array
|
|
public function storeUserWorkGroupApi(Request $request): array
|
|
|
{
|
|
{
|
|
|
- if (Gate::denies('订单管理-工单处理-宝时编辑')){
|
|
|
|
|
- return ['success' => false,'message' => '没有对应权限'];
|
|
|
|
|
|
|
+ if (Gate::denies('订单管理-工单处理-宝时编辑')) {
|
|
|
|
|
+ return ['success' => false, 'message' => '没有对应权限'];
|
|
|
}
|
|
}
|
|
|
- if (!$request->has(['id','user_workgroup_id'])){
|
|
|
|
|
- return ['success' => false,'message' => '参数异常'];
|
|
|
|
|
|
|
+ if (!$request->has(['id', 'user_workgroup_id'])) {
|
|
|
|
|
+ return ['success' => false, 'message' => '参数异常'];
|
|
|
}
|
|
}
|
|
|
/** @var WorkOrder $workOrder */
|
|
/** @var WorkOrder $workOrder */
|
|
|
$workOrder = WorkOrder::query()->find($request->input('id'));
|
|
$workOrder = WorkOrder::query()->find($request->input('id'));
|
|
|
- if (!$workOrder){
|
|
|
|
|
- return ['success' => false,'message' => '未找到对应的工单'];
|
|
|
|
|
|
|
+ if (!$workOrder) {
|
|
|
|
|
+ return ['success' => false, 'message' => '未找到对应的工单'];
|
|
|
}
|
|
}
|
|
|
- $hasExists = $workOrder->userWorkGroups()->where('user_workgroup_id',$request->input('user_workgroup_id'))->exists();
|
|
|
|
|
- if ($hasExists) return ['success' => false,'message' => '已有对应的关系'];
|
|
|
|
|
- $workOrder->userWorkGroups()->attach( $request->input('user_workgroup_id'));
|
|
|
|
|
- return ['success' => true,'data' => $workOrder->userWorkGroups];
|
|
|
|
|
|
|
+ $hasExists = $workOrder->userWorkGroups()->where('user_workgroup_id', $request->input('user_workgroup_id'))->exists();
|
|
|
|
|
+ if ($hasExists) return ['success' => false, 'message' => '已有对应的关系'];
|
|
|
|
|
+ $workOrder->userWorkGroups()->attach($request->input('user_workgroup_id'));
|
|
|
|
|
+ return ['success' => true, 'data' => $workOrder->userWorkGroups];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function destroyUserWorkGroupApi(Request $request): array
|
|
public function destroyUserWorkGroupApi(Request $request): array
|
|
|
{
|
|
{
|
|
|
- if (Gate::denies('订单管理-工单处理-宝时编辑')){
|
|
|
|
|
- return ['success' => false,'message' => '没有对应权限'];
|
|
|
|
|
|
|
+ if (Gate::denies('订单管理-工单处理-宝时编辑')) {
|
|
|
|
|
+ return ['success' => false, 'message' => '没有对应权限'];
|
|
|
}
|
|
}
|
|
|
- if (!$request->has(['id','user_workgroup_id'])){
|
|
|
|
|
- return ['success' => false,'message' => '参数异常'];
|
|
|
|
|
|
|
+ if (!$request->has(['id', 'user_workgroup_id'])) {
|
|
|
|
|
+ return ['success' => false, 'message' => '参数异常'];
|
|
|
}
|
|
}
|
|
|
/** @var WorkOrder $workOrder */
|
|
/** @var WorkOrder $workOrder */
|
|
|
$workOrder = WorkOrder::query()->find($request->input('id'));
|
|
$workOrder = WorkOrder::query()->find($request->input('id'));
|
|
|
- if (!$workOrder){
|
|
|
|
|
- return ['success' => false,'message' => '未找到对应的工单'];
|
|
|
|
|
|
|
+ if (!$workOrder) {
|
|
|
|
|
+ return ['success' => false, 'message' => '未找到对应的工单'];
|
|
|
}
|
|
}
|
|
|
$workOrder->userWorkGroups()->detach($request->input('user_workgroup_id'));
|
|
$workOrder->userWorkGroups()->detach($request->input('user_workgroup_id'));
|
|
|
return ['success' => true];
|
|
return ['success' => true];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public function exportJsonExcel(Request $request, WorkOrderFilters $filters)
|
|
|
|
|
+ {
|
|
|
|
|
+ $work_orders = WorkOrder::query()->filter($filters)->defaultWith()->get();
|
|
|
|
|
+ return $this->exportJson($work_orders);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public function exportJson($workOrders)
|
|
|
|
|
+ {
|
|
|
|
|
+ $json = [];
|
|
|
|
|
+ $row = [
|
|
|
|
|
+ '工单类型', '当前进度', '客户', '店铺名称', '客户订单号', '快递单号', '创建时间', '当前处理人', '创建人', '情况说明', '退回单号', '退回商品', '退回商品名称', '退回商品数量', '是否正品', '操作类型', '操作人', '内容'
|
|
|
|
|
+ ];
|
|
|
|
|
+ $workOrders->each(function ($item) use (&$json) {
|
|
|
|
|
+ $logistic_numbers = $item->order->packages->implode('logistic_number', ",\r\n");
|
|
|
|
|
+ $logistic_numbers_return = $item->orderIssueRejectedBills->implode('logistic_number_return',",\r\n");
|
|
|
|
|
+ $rejected_item_name = '';
|
|
|
|
|
+ $rejected_item_sku = '';
|
|
|
|
|
+ $rejected_item_label = '';
|
|
|
|
|
+ $rejected_item_amount = '';
|
|
|
|
|
+ $item->orderIssueRejectedBills->each(function ($item) use (&$rejected_item_name, &$rejected_item_sku, &$rejected_item_label, &$rejected_item_amount) {
|
|
|
|
|
+ if($item->rejectedBill)
|
|
|
|
|
+ $item->rejectedBill->items->each(function ($item) use (&$rejected_item_name, &$rejected_item_sku, &$rejected_item_label, &$rejected_item_amount) {
|
|
|
|
|
+ $rejected_item_name = $rejected_item_name . $item->name_goods . ",\r\n";
|
|
|
|
|
+ $rejected_item_sku = $rejected_item_sku . $item->barcode_goods . ",\r\n";
|
|
|
|
|
+ $rejected_item_label = $rejected_item_label . $item->quality_label . ",\r\n";
|
|
|
|
|
+ $rejected_item_amount = $rejected_item_amount . $item->amount . ",\r\n";
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ $work_order_process_logs_type = '';
|
|
|
|
|
+ $work_order_process_logs_user = '';
|
|
|
|
|
+ $work_order_process_logs = '';
|
|
|
|
|
+
|
|
|
|
|
+ $work_order_details = $item->details->filter(function ($detail) use ($item) {
|
|
|
|
|
+ return $detail->order_issue_type_id == $item->order_issue_type_id;
|
|
|
|
|
+ });
|
|
|
|
|
+ if(count($work_order_details) > 0){
|
|
|
|
|
+ $work_order_details->first()->processLogs->each(function ($log) use (&$work_order_process_logs_type,&$work_order_process_logs_user,&$work_order_process_logs) {
|
|
|
|
|
+ $work_order_process_logs_type .= $log->type. ",\r\n";
|
|
|
|
|
+ $work_order_process_logs_user .= ($log->user->name ?? ''). ",\r\n";
|
|
|
|
|
+ $work_order_process_logs .= $log->content. ",\r\n";
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $json[] = [
|
|
|
|
|
+ $item->issueType->name ?? '',
|
|
|
|
|
+ $item->process_progress,
|
|
|
|
|
+ $item->owner->name ?? '',
|
|
|
|
|
+ $item->order->shop->name ?? '',
|
|
|
|
|
+ $item->order->client_code ?? '',
|
|
|
|
|
+ rtrim($logistic_numbers, ",\r\n"),
|
|
|
|
|
+ isset($item->created_at) ? str_split($item->created_at, 10)[0] : '',
|
|
|
|
|
+ $item->status,
|
|
|
|
|
+ $item->creator->name ?? '',
|
|
|
|
|
+ $item->remark,
|
|
|
|
|
+ rtrim($logistic_numbers_return, ",\r\n"),
|
|
|
|
|
+ rtrim($rejected_item_sku, ",\r\n"),
|
|
|
|
|
+ rtrim($rejected_item_name, ",\r\n"),
|
|
|
|
|
+ rtrim($rejected_item_amount, ",\r\n"),
|
|
|
|
|
+ rtrim($rejected_item_label, ",\r\n"),
|
|
|
|
|
+ rtrim($work_order_process_logs_type, ",\r\n"),
|
|
|
|
|
+ rtrim($work_order_process_logs_user, ",\r\n"),
|
|
|
|
|
+ rtrim($work_order_process_logs, ",\r\n"),
|
|
|
|
|
+ ];
|
|
|
|
|
+ });
|
|
|
|
|
+ return Export::make($row, $json, "工单");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|