validatorForNew($request->all())->errors(); if(count($errors)>0){ $this->log(__METHOD__, 'error' . __FUNCTION__, json_encode($request->all())); return ['response'=>['flag'=>'W','message'=>'fields wrong, see Errors report please.', 'errors'=>$errors]]; } $receiveInputs=$request->input('request'); foreach ($receiveInputs as $receiveInput){ $receive=new WMSReflectReceive($receiveInput); $receive->save(); $skus=[]; foreach ($receiveInput['SKU_LIST'] as $skuInput){ $sku=new WMSReflectReceiveSku($skuInput); $receive->skus()->save($sku); $skus[]=$sku; } event(new WmsReceiveNewEvent($receive['ASNREFERENCE3'],$skus)); } return response()->json(['response'=>['flag'=>'Y','code'=>'0000','message'=>'正确接收']]) ->setEncodingOptions(JSON_UNESCAPED_UNICODE); } protected function validatorForNew(array $data) { return Validator::make($data, [ 'request' => ['required', 'array', 'min:1'], 'request.*.ASNNO' => ['required', 'string', 'max:191'], 'request.*.WAREHOUSEID' => ['required', 'string', 'max:191'], 'request.*.CUSTOMERID' => ['required', 'string', 'max:191'], 'request.*.ASNTYPE' => ['nullable', 'string', 'max:191'], 'request.*.ASNREFERENCE1' => ['required', 'string', 'max:191'], 'request.*.ASNREFERENCE2' => ['nullable', 'string', 'max:191'], 'request.*.ASNREFERENCE3' => ['required', 'string', 'max:191'], 'request.*.ASNSTATUS' => ['nullable', 'string', 'max:191'], 'request.*.NOTES' => ['nullable', 'string', 'max:191'], 'request.*.USERDEFINE1' => ['nullable', 'string', 'max:191'], 'request.*.USERDEFINE2' => ['nullable', 'string', 'max:191'], 'request.*.USERDEFINE3' => ['nullable', 'string', 'max:191'], 'request.*.SKU_LIST' => ['required', 'array', 'min:1'], 'request.*.SKU_LIST.*.ASNLINENO' => ['nullable', 'string', 'max:191'], 'request.*.SKU_LIST.*.SKU' => ['required', 'string', 'max:191'], 'request.*.SKU_LIST.*.ALTERNATE_SKU1' => ['required', 'string', 'max:191'], 'request.*.SKU_LIST.*.SKUDESCRC' => ['nullable', 'string', 'max:191'], 'request.*.SKU_LIST.*.EXPECTEDQTY_EACH' => ['nullable', 'string', 'max:191'], 'request.*.SKU_LIST.*.UOM' => ['nullable', 'string', 'max:191'], 'request.*.SKU_LIST.*.LINESTATUS' => ['nullable', 'string', 'max:191'], 'request.*.SKU_LIST.*.LOTATT05' => ['nullable', 'string', 'max:191'], 'request.*.SKU_LIST.*.USERDEFINE4' => ['nullable', 'string', 'max:191'], 'request.*.SKU_LIST.*.USERDEFINE5' => ['nullable', 'string', 'max:191'], 'request.*.SKU_LIST.*.USERDEFINE6' => ['nullable', 'string', 'max:191'], ],[],[ 'request.ASNNO' => 'ASNNO', 'request.*.WAREHOUSEID' => 'WAREHOUSEID', 'request.*.CUSTOMERID' => 'CUSTOMERID', 'request.*.ASNTYPE' => 'ASNTYPE', 'request.*.ASNREFERENCE1' => 'ASNREFERENCE1', 'request.*.ASNREFERENCE2' => 'ASNREFERENCE2', 'request.*.ASNREFERENCE3' => 'ASNREFERENCE3', 'request.*.ASNSTATUS' => 'ASNSTATUS', 'request.*.NOTES' => 'NOTES', 'request.*.USERDEFINE1' => 'USERDEFINE1', 'request.*.USERDEFINE2' => 'USERDEFINE2', 'request.*.USERDEFINE3' => 'USERDEFINE3', 'request.*.SKU_LIST' => 'SKU_LIST', 'request.*.SKU_LIST.*.ASNLINENO' => 'SKU_LIST.ASNLINENO', 'request.*.SKU_LIST.*.SKU' => 'SKU_LIST.SKU', 'request.*.SKU_LIST.*.ALTERNATE_SKU1' => 'SKU_LIST.ALTERNATE_SKU1', 'request.*.SKU_LIST.*.SKUDESCRC' => 'SKU_LIST.SKUDESCRC', 'request.*.SKU_LIST.*.EXPECTEDQTY_EACH' => 'SKU_LIST.EXPECTEDQTY_EACH', 'request.*.SKU_LIST.*.UOM' => 'SKU_LIST.UOM', 'request.*.SKU_LIST.*.LINESTATUS' => 'SKU_LIST.LINESTATUS', 'request.*.SKU_LIST.*.LOTATT05' => 'SKU_LIST.LOTATT05', 'request.*.SKU_LIST.*.USERDEFINE4' => 'SKU_LIST.USERDEFINE4', 'request.*.SKU_LIST.*.USERDEFINE5' => 'SKU_LIST.USERDEFINE5', 'request.*.SKU_LIST.*.USERDEFINE6' => 'SKU_LIST.USERDEFINE6', ]); } /** * 入库回传给WMS */ static public function accomplishToWMS(RejectedBill $rejectedBill) { $wmsReceived=WMSReflectReceive::where('ASNREFERENCE3',$rejectedBill['logistic_number_return'])->first(); if(!$wmsReceived){ (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,'没有WMS入库单'); return false; } $orderNumberCode=$wmsReceived['ASNREFERENCE1']??$rejectedBill['order_number']; $skuList=[]; $rejectedBill->items()->each(function(RejectedBillItem $item)use($wmsReceived){ if($item['is_loaded']){return;} $STATUS=$item['id_quality_label']==1?'ZP':'CC'; $sku=$item->wmsReflectSku()->first(); $sku=" { \"ORDERNUMBERCODE\": \"{$wmsReceived['ASNNO']}\", \"ASNLINENO\": \"{$sku['ASNLINENO']}\", \"SKUCODE\": \"{$sku['SKU']}\", \"QUANTITY\": \"{$item['amount']}\", \"LOTATT04\": \"{$sku['LOTATT04']}\", \"LOTATT05\": \"{$sku['LOTATT05']}\", \"STATUS\": \"{$STATUS}\", \"PRODUCTION DATE\": \"{$item['made_at']}\", \"EXPIRATION DATE\": \"{$item['validity_at']}\", \"USERDEFINE4\": \"\", \"USERDEFINE5\": \"\", \"USERDEFINE6\": \"\", \"UNIQUE_CODE_LIST\": [ { \"ORDERNUMBERCODE\": \"{$wmsReceived['ASNNO']}\", \"SKUCODE\": \"{$sku['SKU']}\", \"STATUS\": \"{$STATUS}\", \"PRODUCTION DATE\": \"{$item['made_at']}\", \"EXPIRATION DATE\": \"{$item['validity_at']}\", \"LOTATT05\": \"{$sku['LOTATT05']}\", \"UNIQUE_CODE\": \"\" } ] } "; $skuList[]=$sku; }); $skuList = implode(',',$skuList); $json=" { \"request\": [ { \"ORDERNUMBERCODE\": \"{$wmsReceived['ASNNO']}\", \"CUSTOMERID\": \"{$rejectedBill->owner()->first()['code']}\", \"ASNTYPE\": \"{$wmsReceived['ASNTYPE']}\", \"ASNREFERENCE1\": \"{$orderNumberCode}\", \"ADDWHO\": \"WCS\", \"USERDEFINE1\": \"\", \"USERDEFINE2\": \"\", \"USERDEFINE3\": \"\", \"SKU_LIST\": [{$skuList}] } ] } "; $json = json_decode($json,true); $url=url(config('api.receiveAccomplishToWMS_flux')); //TODO: del this line (new Controller())->log(__METHOD__,__FUNCTION__,json_encode($json)); $response = Zttp::post($url, $json); $noIssues=true; $json = json_encode($response->body()); if(!$json||!isset($json['response'])||!$json['response']['return']['returnFlag']=='1'){ $noIssues=false; } if($noIssues&&$json['response']['return']['returnFlag']=='1'){ return true; } (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,$response->body()); return false; } }