|
|
@@ -5,13 +5,18 @@ namespace App\Http\Controllers;
|
|
|
use App\DeliveryAppointmentCar;
|
|
|
use App\Filters\ReceivingTaskFilters;
|
|
|
use App\Http\Requests\Api\ReceivingTaskRequest;
|
|
|
+use App\Owner;
|
|
|
use App\ReceivingTask;
|
|
|
use App\ReceivingTaskItem;
|
|
|
use App\Services\OwnerService;
|
|
|
use App\Services\ReceivingTaskService;
|
|
|
use App\Warehouse;
|
|
|
+use Illuminate\Support\Facades\Auth;
|
|
|
+use Illuminate\Support\Facades\Date;
|
|
|
use Illuminate\Support\Facades\Gate;
|
|
|
use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Facades\Http;
|
|
|
+use Ramsey\Uuid\Uuid;
|
|
|
|
|
|
class ReceivingTaskController extends Controller
|
|
|
{
|
|
|
@@ -54,7 +59,11 @@ class ReceivingTaskController extends Controller
|
|
|
}
|
|
|
$appointment_number = $request->input('appointment_number', null);
|
|
|
|
|
|
- $delivery_appointment_car = DeliveryAppointmentCar::query()->with('deliveryAppointment')->where('appointment_number', $appointment_number)->first();
|
|
|
+ $delivery_appointment_car = DeliveryAppointmentCar::query()->with('deliveryAppointment')
|
|
|
+ ->where('status','!=',2)
|
|
|
+ ->where('appointment_number', $appointment_number)
|
|
|
+ ->orderByDesc('id')
|
|
|
+ ->first();
|
|
|
|
|
|
if (!$delivery_appointment_car || !$delivery_appointment_car->deliveryAppointment) {
|
|
|
return ['success' => false, 'errors' => ['appointment_number' => ['对应预约号未找到']]];
|
|
|
@@ -73,17 +82,8 @@ class ReceivingTaskController extends Controller
|
|
|
return ['success' => false, 'errors' => ['appointment_number' => ['预约号没有对应的Asn号']]];
|
|
|
}
|
|
|
|
|
|
-// $receiving_task_items = ReceivingTaskItem::query()->whereIn('asn_no',$request->input('asn_nos') ?? [])->get()->map(function($item){
|
|
|
-// return $item->asn_no;
|
|
|
-// })->toArray();
|
|
|
-// if (count($receiving_task_items) >0 ){
|
|
|
-// return [
|
|
|
-// 'success' => false,'errors' => ['appointment_number' => ['勾选的asn号'.json_encode($receiving_task_items).'已再其他开单入库中有关联']]
|
|
|
-// ];
|
|
|
-// }
|
|
|
-
|
|
|
if ($delivery_appointment_car->deliveryAppointment->owner_id != $request->input('owner_id')) {
|
|
|
- return ['success' => false, 'errors' => ['appointment_number' => ['预约号与货主未必填项']]];
|
|
|
+ return ['success' => false, 'errors' => ['appointment_number' => ['预约号与货主为必填项']]];
|
|
|
}
|
|
|
|
|
|
if (ReceivingTask::query()->where('delivery_appointment_car_id', $delivery_appointment_car->id)->exists()) {
|
|
|
@@ -94,12 +94,41 @@ class ReceivingTaskController extends Controller
|
|
|
$receiving_task = $this->service->createReceivingTask($delivery_appointment_car, $request->all());
|
|
|
if (!$receiving_task->id) return ['success' => false, 'message' => '生成入库单任务失败,请重新尝试'];
|
|
|
$receiving_task->loadMissing(['wareHouse', 'owner', 'deliveryAppointmentCar']);
|
|
|
+ $this->sendPiece($request->input('owner_id'),$receiving_task->number);
|
|
|
return ['success' => true, 'data' => $receiving_task];
|
|
|
} catch (\Exception $e) {
|
|
|
return ['success' => false, 'message' => '生成入库单任务失败,请重新尝试'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function sendPiece($ownerId,$taskId){
|
|
|
+ $url = config('api.java.base').config('api.java.piece.log.record');
|
|
|
+ $owner = Owner::query()->where("id",$ownerId)->first();
|
|
|
+ $warehouseId = $owner->warehouse_id ?? null;
|
|
|
+ $request = [
|
|
|
+ "user_type" => 0,
|
|
|
+ "job_type" => "开单",
|
|
|
+ "job_name" => "开单",
|
|
|
+ "form_number" => 1,
|
|
|
+ "piece_time" => new Date(),
|
|
|
+ "message_id" => $taskId,
|
|
|
+ "user_id" => Auth::user()['id'],
|
|
|
+ "warehouse_id" => $warehouseId,
|
|
|
+ "owner_id" => $ownerId,
|
|
|
+ "item_number" => 0,
|
|
|
+ ];
|
|
|
+ app('LogService')->log("开单", "通知服务端", json_encode($request));
|
|
|
+ $http = Http::post($url, $request);
|
|
|
+ if (!$http->successful()) {
|
|
|
+ app('LogService')->log("开单", "sendPiece", '发送失败:'.$http->body());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ $result = $http->json();
|
|
|
+ if ($result["code"] != 200) {
|
|
|
+ app('LogService')->log("开单", "sendPiece", '服务端错误:'.$http->body());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 根据预约号获取Asn单号
|
|
|
* @param Request $request
|