lihongji
2024-06-18 597f8e8f284b7494fceabaeb2c96e4496cfd2435
_Main/BL/Type_Routing/StaticMethod_ThermalTrialRatio.qbl
@@ -2,6 +2,7 @@
#parent: #root
StaticMethod ThermalTrialRatio (
  Routing routing,
  Unit unit,
  Number capacity,
  Date start,
  Date end,
@@ -12,10 +13,24 @@
  TextBody:
  [*
    // Adhi Feb-10-2016 (created)
    thermaltrial := '热式';
    thermaltrial := Unit::GetThermalTrial();
    newroutings := construct( Routings );
    unit := selectobject( routing.MacroPlan(), Unit, unit, unit.ID() = thermaltrial and unit.HasCapacityTypeQuantity() );
    for( starttime := start; starttime <= end; starttime := starttime + 1 ){
      uc := selectobject( unit, UnitCapacity, uc, uc.Start().Date() = starttime );
      if( isnull( uc ) ){
        uc := UnitCapacity::Create( unit, starttime.DateTime(), 'Day', 0.0, [Real]capacity, 100.0, 1, false );
      }
      uc.MaxCapacity( [Real]capacity * ratio );
    }
    newrouting := routing.Copy();
    name := newrouting.Name().ReplaceAll( 'Copy', thermaltrial );
    newrouting.Name( name );
    newrouting.UpdateTypeIndex( name );
    routing.Start( start );
    routing.End( end );
    routingstep := newrouting.LastStep();
    //info( '------------------', routingstep.Tool(), ',', unit.ID() );
    newroutingstep := RoutingStep::Create( newrouting, thermaltrial, routingstep.Tool(), false );