|
|
@@ -10,6 +10,7 @@ use App\WorkOrder;
|
|
|
use App\WorkOrderChildType;
|
|
|
use App\WorkOrderType;
|
|
|
use Carbon\Carbon;
|
|
|
+use Illuminate\Database\Eloquent\Builder;
|
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
use Illuminate\Support\Facades\Gate;
|
|
|
@@ -18,15 +19,18 @@ class WorkOrderController extends Controller
|
|
|
{
|
|
|
public function index(Request $request, WorkOrderFilters $filters)
|
|
|
{
|
|
|
- if(!Gate::allows('订单管理-工单处理-查询'))return redirect('/');
|
|
|
+ if (!Gate::allows('订单管理-工单处理-查询')) return redirect('/');
|
|
|
|
|
|
- $workOrders = WorkOrder::query()->filter($filters)->with('type', 'childType', 'creator', 'order.packages','reviewer')->orderByDesc('created_at','grad','status')->paginate($request['paginate'] ?? 50);
|
|
|
+ $workOrders = WorkOrder::query()->filter($filters)->with(['type', 'childType', 'creator','order'=>function($query){
|
|
|
+ /** @var $query Builder */
|
|
|
+ $query->with('packages','issue');
|
|
|
+ },'order.issue', 'reviewer'])->orderByDesc('created_at', 'grad', 'status')->paginate($request['paginate'] ?? 50);
|
|
|
return view('order.workOrder.index', compact('workOrders'));
|
|
|
}
|
|
|
|
|
|
public function create()
|
|
|
{
|
|
|
- if(!Gate::allows('订单管理-工单处理-创建'))return redirect('/');
|
|
|
+ if (!Gate::allows('订单管理-工单处理-创建')) return redirect('/');
|
|
|
$workOrderTypes = WorkOrderType::query()->with('childTypes')->get();
|
|
|
$grads = WorkOrder::$enums['grad'];
|
|
|
array_shift($grads);
|
|
|
@@ -36,7 +40,7 @@ class WorkOrderController extends Controller
|
|
|
|
|
|
public function store(Request $request, WorkOrderService $service)
|
|
|
{
|
|
|
- if(!Gate::allows('订单管理-工单处理-创建'))return redirect('/');
|
|
|
+ if (!Gate::allows('订单管理-工单处理-创建')) return redirect('/');
|
|
|
$result = $service->createWordOrder($request->all());
|
|
|
$workOrderTypes = WorkOrderType::query()->with('childTypes')->get();
|
|
|
$grads = WorkOrder::$enums['grad'];
|
|
|
@@ -47,29 +51,30 @@ class WorkOrderController extends Controller
|
|
|
// 创建
|
|
|
public function storeApi(Request $request): array
|
|
|
{
|
|
|
- if(!Gate::allows('订单管理-订单-生成工单'))return ['success' => false,'message' => '没有对应的创建权限'];
|
|
|
+ if (!Gate::allows('订单管理-订单-生成工单')) return ['success' => false, 'message' => '没有对应的创建权限'];
|
|
|
$order_nos = $request['order_nos'];
|
|
|
|
|
|
app(OrderService::class)->syncOrderInfoByWmsOrderNos($order_nos);
|
|
|
|
|
|
$orders = Order::query()->whereIn('code', $order_nos)->get();
|
|
|
|
|
|
- $work_orders = WorkOrder::query()->with('order')->where('outer_table_name', 'orders')->whereIn('outer_table_id', $orders->map(function($item){
|
|
|
+ $work_orders = WorkOrder::query()->with('order')->where('outer_table_name', 'orders')->whereIn('outer_table_id', $orders->map(function ($item) {
|
|
|
return $item['id'];
|
|
|
}))->get();
|
|
|
+
|
|
|
$exists_nos = $work_orders->map(function ($item) {
|
|
|
return $item->order->code;
|
|
|
});
|
|
|
if (count($exists_nos) > 0)
|
|
|
- return ['success' => false, 'message' => join(',',$exists_nos->toArray()) . ' 已有对应的工单'];
|
|
|
+ return ['success' => false, 'message' => join(',', $exists_nos->toArray()) . ' 已有对应的工单'];
|
|
|
|
|
|
$inner_params = [];
|
|
|
|
|
|
$creator_id = Auth::user()['id'];
|
|
|
|
|
|
- $work_order_type = WorkOrderType::query()->firstOrCreate(['name'=> '订单']);
|
|
|
+ $work_order_type = WorkOrderType::query()->firstOrCreate(['name' => '订单']);
|
|
|
|
|
|
- $work_order_child_type= WorkOrderChildType::query()->firstOrCreate(['name' => '拦截','work_order_type_id' => $work_order_type['id'],'table_name' => 'orders']);
|
|
|
+ $work_order_child_type = WorkOrderChildType::query()->firstOrCreate(['name' => '拦截', 'work_order_type_id' => $work_order_type['id'], 'table_name' => 'orders']);
|
|
|
$datetime = Carbon::now();
|
|
|
foreach ($orders as $order) {
|
|
|
$inner_params[] = [
|
|
|
@@ -92,11 +97,24 @@ class WorkOrderController extends Controller
|
|
|
// 审核
|
|
|
public function reviewApi(Request $request, WorkOrderService $service): array
|
|
|
{
|
|
|
- if(!Gate::allows('订单管理-工单处理-审核'))return ['success' => false,'message' => '没有对应的编辑权限'];
|
|
|
+ if (!Gate::allows('订单管理-工单处理-审核')) return ['success' => false, 'message' => '没有对应的编辑权限'];
|
|
|
$workOrder = WorkOrder::query()->find($request['id']);
|
|
|
return $service->reviewWordOrder($workOrder);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 生成对应问题件
|
|
|
+ */
|
|
|
+ public function createOrderIssueApi(Request $request,WorkOrderService $service): array
|
|
|
+ {
|
|
|
+ if (!Gate::allows('订单管理-订单问题件生成'))
|
|
|
+ return ['success' => false, 'message' => '没有对应权限'];
|
|
|
+ $work_orders = WorkOrder::query()->whereIn('id', $request['ids'])->get();
|
|
|
+ if (count($work_orders) == 0) return ['success' => false,'message' => '刷新当前页面重试'];
|
|
|
+ return $service->orderIssueByWorkOrder($work_orders);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public function show(WorkOrder $workOrder)
|
|
|
{
|
|
|
//
|