belongsTo('App\Owner','owner_id','id'); } public function logistic(){ return $this->belongsTo('App\Logistic','logistic_id','id'); } public function measuringMachine(){ return $this->belongsTo('App\MeasuringMachine','measuring_machine_id','id'); } public function paperBox(){ return $this->belongsTo('App\PaperBox','paper_box_id','id'); } public function WMSReflectPackage(){ return $this->hasOne('App\WMSReflectPackage','SOReference5','logistic_number'); } public function getOwnerNameAttribute() { return $this['owner']? $this['owner']['name']:null; } public function getLogisticNameAttribute(){ return $this['logistic']? $this['logistic']['name']:null; } public function getMeasuringMachineNameAttribute(){ return $this['measuringMachine']? $this['measuringMachine']['name']:null; } public function getPaperBoxNameAttribute(){ return $this['paperBox']? $this['paperBox']['model']:null; } public function getWMSReflectPackageNameAttribute(){ return $this['WMSReflectPackage']? $this['WMSReflectPackage']['TASKID']:null; } //寻找相近纸箱ID public function checkPaperBox($max,$centre,$min,$owner_id){ $sumDiffer=0; $maxDiffer=0; $paperBox_id=null; $boxes=Owner::select('id')->with('paperBoxes')->find($owner_id); foreach ($boxes->paperBoxes as $i=>$paperBox){ if ($paperBox->length==$max&&$paperBox->width==$centre&&$paperBox->height==$min){ $paperBox_id=$paperBox->id; break; } $lengthDiffer=abs($paperBox->length-$max); $widthDiffer=abs($paperBox->width-$centre); $heightDiffer=abs($paperBox->height-$min); $thisMaxDiffer=($lengthDiffer>=($widthDiffer>=$heightDiffer?$widthDiffer:$heightDiffer)?$lengthDiffer:($widthDiffer>=$heightDiffer?$widthDiffer:$heightDiffer)); if($i==0){ $maxDiffer=$thisMaxDiffer; $sumDiffer=$lengthDiffer+$widthDiffer+$heightDiffer; $paperBox_id=$paperBox->id; } if ($thisMaxDiffer==$maxDiffer){ if($sumDiffer>($lengthDiffer+$widthDiffer+$heightDiffer)){ $sumDiffer=$lengthDiffer+$widthDiffer+$heightDiffer; $paperBox_id=$paperBox->id; } } if ($thisMaxDiffer<$maxDiffer){ $sumDiffer=$lengthDiffer+$widthDiffer+$heightDiffer; $maxDiffer=$thisMaxDiffer; $paperBox_id=$paperBox->id; } } return $paperBox_id; } }