| | |
| | | TextBody: |
| | | [* |
| | | numberOfLayers++; |
| | | info( "目标时间:", targetDate.Format( "Y-M2-D2" ) ); |
| | | //info( "目标时间:", targetDate.Format( "Y-M2-D2" ) ); |
| | | info( pisp.Name() ); |
| | | traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, pispippl.Start().Date() = targetDate ) { |
| | | traverse ( pispippl, NewSupply, ns, ns.Quantity() > 0 ) { |
| | |
| | | |
| | | ontype( ns.PeriodTask_MP() ) { |
| | | PeriodTaskOperation as pto : { |
| | | info( "Operation周期任务..." ); |
| | | // info( "Operation周期任务..." ); |
| | | traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd ) { |
| | | if ( numberOfLayers = 1 ) { |
| | | currentLayerDependentDemandQuantity := ns.Quantity(); |
| | | } |
| | | currentLayerDependentDemandQuantity := currentLayerDependentDemandQuantity * |
| | | ns.ProcessOutput().astype( OperationOutput ).Quantity() * |
| | | dd.ProcessInput().astype( OperationInput ).Quantity(); |
| | | info( "层数:", numberOfLayers, " 当前供应的pisp:", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 总供应值:", ns.Quantity(), " 需要供应值:", currentLayerDependentDemandQuantity, |
| | | " 当前需求pisp:", dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 需求值:", currentLayerDependentDemandQuantity ); |
| | | info( "-----------------------------------------------------------------------------------------------------------------" ); |
| | | // info( "层数:", numberOfLayers, " 当前供应的pisp:", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 总供应值:", ns.Quantity(), " 需要供应值:", currentLayerDependentDemandQuantity, |
| | | // " 当前需求pisp:", dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 需求值:", currentLayerDependentDemandQuantity ); |
| | | // info( "-----------------------------------------------------------------------------------------------------------------" ); |
| | | CapacityAllocationResults::IterativeGeneration2( globalOTDTable, |
| | | dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), |
| | | targetDate, |
| | |
| | | } |
| | | carrc := select( carrcs, Elements, carrc, carrc.PanelMaterialCode() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() ); |
| | | if ( not isnull( carrc ) ) { |
| | | info( "找到面板物料..." ); |
| | | // info( "找到面板物料..." ); |
| | | globalOTDTable.CapacityAllocationResults( relnew, |
| | | PanelBase := pto.Operation().UnitID(), |
| | | PanelMaterialCode := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), |
| | |
| | | Description := "", |
| | | ID := OS::GenerateGUIDAsString(), |
| | | ProductID := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), |
| | | StockingPointID := "", |
| | | StockingPointID := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().StockingPointID(), |
| | | UserQuantity := currentLayerDependentDemandQuantity, |
| | | ManufacturedDate := Date::MinDate() |
| | | ); |
| | |
| | | PeriodTaskLaneLeg as ptll : { |
| | | targetDependentDemand := select( ptll, DependentDemand, dd, dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() ); |
| | | currentLayerDependentDemandQuantity := ifexpr( numberOfLayers = 1, targetDependentDemand.Quantity(), currentLayerDependentDemandQuantity ); |
| | | info( "层数:", numberOfLayers," 当前供应的pisp:", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 总供应值:", ns.Quantity(), " 需要供应值:", currentLayerDependentDemandQuantity, |
| | | " 当前需求pisp:", targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 需求值:", currentLayerDependentDemandQuantity ); |
| | | info( "LaneLeg周期任务..." ); |
| | | // info( "层数:", numberOfLayers," 当前供应的pisp:", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 总供应值:", ns.Quantity(), " 需要供应值:", currentLayerDependentDemandQuantity, |
| | | // " 当前需求pisp:", targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 需求值:", currentLayerDependentDemandQuantity ); |
| | | // info( "LaneLeg周期任务..." ); |
| | | info( "-----------------------------------------------------------------------------------------------------------------" ); |
| | | CapacityAllocationResults::IterativeGeneration2( globalOTDTable, |
| | | targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), |