|
@@ -304,18 +304,22 @@ class chctlex
|
|
|
{
|
|
|
$workers = [];
|
|
|
$overs = [];
|
|
|
+ $stops = [];
|
|
|
|
|
|
foreach ($ctls as $item)
|
|
|
{
|
|
|
Log::record("ctl_splitor {$item->name()} speed={$item->cur_speed()} max_speed={$item->max_speed()}",Log::DEBUG);
|
|
|
- if($item->speed_overload()) {
|
|
|
+ if($item->speed_stoped()) {
|
|
|
+ $stops[] = $item;
|
|
|
+ }
|
|
|
+ elseif($item->speed_overload()) {
|
|
|
$overs[] = $item;
|
|
|
}
|
|
|
else {
|
|
|
$workers[] = $item;
|
|
|
}
|
|
|
}
|
|
|
- return [$workers,$overs];
|
|
|
+ return [$workers, $overs, $stops];
|
|
|
};
|
|
|
|
|
|
$time_map = function ($ctls, $left_time)
|
|
@@ -364,22 +368,25 @@ class chctlex
|
|
|
$ctls = $price_filter($names, $spec, $card_type, $quality);
|
|
|
$ctlitem_logger("price filter", $ctls);
|
|
|
|
|
|
- [$workers,$overloads] = $ctl_splitor($ctls);
|
|
|
+ [$workers,$overloads,$stops] = $ctl_splitor($ctls);
|
|
|
|
|
|
$ctlitem_logger("workers",$workers);
|
|
|
- $ctlitem_logger("over loads",$overloads);
|
|
|
+ $ctlitem_logger("overloads",$overloads);
|
|
|
+ $ctlitem_logger("stops",$stops);
|
|
|
|
|
|
usort($workers, $desc_profit);
|
|
|
usort($overloads, $desc_profit);
|
|
|
+ usort($stops, $desc_profit);
|
|
|
|
|
|
- $ctlitem_logger("sort works",$workers);
|
|
|
- $ctlitem_logger("sort loads",$overloads);
|
|
|
+ $ctlitem_logger("sort workers",$workers);
|
|
|
+ $ctlitem_logger("sort overloads",$overloads);
|
|
|
+ $ctlitem_logger("sort stops",$stops);
|
|
|
|
|
|
- $ctls = array_merge($workers, $overloads);
|
|
|
- $ctlitem_logger("result merge ctls",$ctls);
|
|
|
+ $ctls = array_merge($workers, $overloads, $stops);
|
|
|
+ $ctlitem_logger("result merge ctls", $ctls);
|
|
|
|
|
|
- $ctls = $time_map($ctls,$left_time);
|
|
|
- $ctlitem_logger("result time check ctls",$ctls);
|
|
|
+ $ctls = $time_map($ctls, $left_time);
|
|
|
+ $ctlitem_logger("result time check ctls", $ctls);
|
|
|
|
|
|
$names = $names_getter($ctls);
|
|
|
return $names;
|