select('id',"code") ->whereNotIn("id",$blacklist) ->where("id",">",$id)->where("code","like","IDE%") ->where("status",4)->limit(10)->orderBy("id") ->whereNotIn("id",StationTaskMaterialBox::query()->select("material_box_id") ->where("status","!=","已完成")->groupBy("material_box_id")) ->get(); if ($boxes->count()==0)break; $ides = []; $str = "("; for ($i=0;$icode."',"; $ides[$boxes[$i]->code] = $boxes[$i]; } $box = $boxes[count($boxes)-1]; $ides[$box->code] = $box; $str .= "'".$box->code."')"; $id = $box->id; $sql = <<select(DB::raw($sql)) as $item){ if ((int)$item->qty==0)return $ides[$item->locationid]; unset($ides[$item->locationid]); } if ($ides)return current($ides); } return null; } /** * 获取料箱所在库区 * * @param string $ide * * @return string|null */ public function getBoxLocation(string $ide) { $bin = DB::connection("mysql_haiRobotics")->table("ks_bin")->select("ks_bin_space_code") ->where("ks_bin_code",$ide)->where("status",1)->first(); return $bin->ks_bin_space_code ?? null; } }