|
|
@@ -3,17 +3,98 @@
|
|
|
namespace App\Http\Controllers\Api\thirdPart\flux;
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
-use App\RejectedBillItem;
|
|
|
use App\Store;
|
|
|
-use App\WMSReflectReceive;
|
|
|
-use App\WMSReflectReceiveSku;
|
|
|
+use App\Waybill;
|
|
|
+use App\WMSWaybill;
|
|
|
+use App\WMSWaybillOrder;
|
|
|
+use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Facades\Auth;
|
|
|
+use Illuminate\Support\Facades\Validator;
|
|
|
use Zttp\Zttp;
|
|
|
|
|
|
class WaybillController extends Controller
|
|
|
{
|
|
|
|
|
|
- public function accomplishToWMS(Store $store,array $inputs)
|
|
|
+ public function new_(Request $request)
|
|
|
{
|
|
|
+ $errors=$this->validatorForNew($request->all())->errors();
|
|
|
+ if(count($errors)>0){
|
|
|
+ $this->log(__METHOD__, 'error_' . __FUNCTION__, json_encode($request->getContent()));
|
|
|
+ (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,'fields wrong, see Errors report please.'.'|'.json_encode($request).'|'.json_encode($errors));
|
|
|
+ return response()->json(['response'=>['return'=>['returnFlag'=>'0','returnCode'=>'0001','returnDesc'=>'消息处理失败:Failure','resultInfo'=>'',
|
|
|
+ 'errors'=>$errors]]])
|
|
|
+ ->setEncodingOptions(JSON_UNESCAPED_UNICODE);
|
|
|
+ }
|
|
|
+ $receivedInputtings=$request->input('request');
|
|
|
+ foreach ($receivedInputtings as $receiveInputting){
|
|
|
+ if(!WMSWaybill::create($receiveInputting)){
|
|
|
+ Controller::logS(__METHOD__,'error_'.__FUNCTION__,'运单WMS写入错误'.'|'.json_encode($receiveInputting));
|
|
|
+ return response()->json(['response'=>['return'=>['returnFlag'=>'0','returnCode'=>'0001','returnDesc'=>'运单WMS写入错误'.'|'
|
|
|
+ .json_encode($receiveInputting),'resultInfo'=>'']]])
|
|
|
+ ->setEncodingOptions(JSON_UNESCAPED_UNICODE);
|
|
|
+ }
|
|
|
+ foreach ($receiveInputting['order_list'] as $orderInputting){
|
|
|
+ if(!WMSWaybillOrder::create($orderInputting)){
|
|
|
+ Controller::logS(__METHOD__,'error_'.__FUNCTION__,'运单订单行WMS写入错误'.'|'.json_encode($orderInputting));
|
|
|
+ return response()->json(['response'=>['return'=>['returnFlag'=>'0','returnCode'=>'0001','returnDesc'=>'运单订单行WMS写入错误'.'|'
|
|
|
+ .json_encode($orderInputting),'resultInfo'=>'']]])
|
|
|
+ ->setEncodingOptions(JSON_UNESCAPED_UNICODE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return response()->json(['response'=>['return'=>['returnFlag'=>'1','returnCode'=>'0000','returnDesc'=>'正确接收','resultInfo'=>'']]])
|
|
|
+ ->setEncodingOptions(JSON_UNESCAPED_UNICODE);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ protected function validatorForNew(array $data)
|
|
|
+ {
|
|
|
+ return Validator::make($data, [
|
|
|
+ 'request' => ['required', 'array', 'min:1'],
|
|
|
+ 'request.*.OrderNo' => ['required', 'string', 'max:191','unique:w_m_s_waybills,OrderNo'],
|
|
|
+ 'request.*.CustomerID' => ['required', 'string', 'max:191'],
|
|
|
+ 'request.*.CarrierID' => ['required', 'string', 'max:191'],
|
|
|
+ 'request.*.ConsigneeName' => ['nullable', 'string', 'max:191'],
|
|
|
+ 'request.*.C_Tel' => ['nullable', 'string', 'max:191'],
|
|
|
+ 'request.*.C_Address' => ['required', 'string', 'max:191'],
|
|
|
+ 'request.*.C_Province' => ['required', 'string', 'max:191'],
|
|
|
+ 'request.*.C_City' => ['nullable', 'string', 'max:191'],
|
|
|
+ 'request.*.C_District' => ['nullable', 'string', 'max:191'],
|
|
|
+ 'request.*.order_list' => ['required', 'array', 'min:1'],
|
|
|
+ 'request.*.order_list.*.SKU_Descr_c' => ['nullable', 'string', 'max:191'],
|
|
|
+ 'request.*.order_list.*.SKU' => ['required', 'string', 'max:191'],
|
|
|
+ 'request.*.order_list.*.Alternate_sku1' => ['required', 'string', 'max:191'],
|
|
|
+ 'request.*.order_list.*.Qtyordered_each' => ['required', 'string', 'max:191'],
|
|
|
+ 'request.*.order_list.*.Cubic' => ['nullable', 'string', 'max:191'],
|
|
|
+ 'request.*.order_list.*.GrossWeight' => ['nullable', 'string', 'max:191'],
|
|
|
+ 'request.*.order_list.*.NetWeight' => ['nullable', 'string', 'max:191'],
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function accomplishToWMS(Waybill $waybill)
|
|
|
+ {
|
|
|
+ $json="
|
|
|
+ {
|
|
|
+ \"request\": [
|
|
|
+ {
|
|
|
+ \"OrderNo\": \"{$waybill['wms_bill_number']}\",
|
|
|
+ \"DELIVERYNO\": \"{$waybill['waybill_number']}\",
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ";
|
|
|
+ $sendingJson = json_decode($json,true);
|
|
|
+ $url=url(config('api.flux.waybill.new'));
|
|
|
+ $response = Zttp::post($url, $sendingJson);
|
|
|
+ $responseJson = $response->json();
|
|
|
+ if(!$responseJson||!isset($responseJson['Response'])||!$responseJson['Response']['return']['returnFlag']=='1'){
|
|
|
+ if(config('api.jianshang_rejecteds_log_switch'))Controller::logS(__METHOD__,'error_'.__FUNCTION__,"向WMS提交运单失败!!SO单号:{$waybill['wms_bill_number']}。返回:{$response->body()}",Auth::user()['id']);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(config('api.jianshang_rejecteds_log_switch'))Controller::logS(__METHOD__,''.__FUNCTION__,"向WMS提交运单成功,SO单号:{$waybill['wms_bill_number']}。返回:{$response->body()}",Auth::user()['id']);
|
|
|
+ return true;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|