| Quintiq file version 2.0 | 
| #parent: #root | 
| Method ProcessingTimeIntervalIsEqualToOneDay ( | 
|   MacroPlan macroPlan, | 
|   UnitPeriodTimeBase uptb, | 
|   UnitPeriodTimeBases uptbs | 
| ) | 
| { | 
|   Description: '处理时间区间等于1天' | 
|   TextBody: | 
|   [* | 
|     if ( uptb.UsedCapacity() = uptb.TotalAvailableCapacity() or [Number]( uptb.UtilizationPercentage() * uptb.MaximumLoadPercentage() / 100 ) = 100 or uptb.FreeCapacity().HoursAsReal() = 0 ) {  | 
|       debuginfo( "天已经是整班,无需处理(使用产能等于可用产能)" ); | 
|     } else if ( uptb.UsedCapacity().HoursAsReal() = 0 ) { | 
|       debuginfo( "天已经是整班,无需处理(使用产能等于0)" ); | 
|     } else if ( uptb.UsedCapacity() < uptb.TotalAvailableCapacity() and uptb.UsedCapacity().HoursAsReal() > 0 ) { | 
|       whetherToFillInZero := true; // 初始化默认补零条件 | 
|       debuginfo( "天不是整班,需要处理" ); | 
|       traverse ( uptb, PeriodTaskOperation, pto, whetherToFillInZero ) { | 
|         debuginfo( "当前周期任务输出的产品个数:", pto.NewSupply( relsize ) ); | 
|         traverse( pto, NewSupply, ns, whetherToFillInZero ) { | 
|           debuginfo( "当前供应的产品:", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), "    当前供应的产品的剩余库存:", ns.ProductInStockingPointInPeriodPlanningLeaf().InventoryLevelEnd(), "    当前供应的产品的最小库存:", ns.ProductInStockingPointInPeriodPlanningLeaf().MinInventoryLevel(), "    当前供应的产品的最大库存:", ns.ProductInStockingPointInPeriodPlanningLeaf().MaxInventoryLevel(),"    当前产品在该周期任务的供应量:", ns.Quantity() ); | 
|           if ( ( ns.ProductInStockingPointInPeriodPlanningLeaf().InventoryLevelEnd() - ns.Quantity() ) < ns.ProductInStockingPointInPeriodPlanningLeaf().MinInventoryLevel() ) { | 
|             debuginfo( "当前周期任务不能补零" ); | 
|             whetherToFillInZero := false; | 
|           } | 
|         } | 
|         debuginfo( ".........." );              | 
|       } | 
|       whetherToFillInZero := false; | 
|       if ( whetherToFillInZero ) { | 
|         debuginfo( "开始执行补零------------" ); | 
|         this.ZeroCapacityReplenishment( macroPlan, uptb.UsedCapacity().HoursAsReal(), uptb, uptbs );  | 
|       } else { | 
|         debuginfo( "开始执行圆整------------" ); | 
|         this.CapacityRounding( macroPlan, uptb.TotalAvailableCapacity().HoursAsReal() - ( uptb.UsedCapacity() + uptb.ChangeoverDuration() ).HoursAsReal(), uptb, uptbs ); | 
|       } | 
|     } else { | 
|       debuginfo( "天出现异常" ); | 
|     } | 
|   *] | 
| } |