| | |
| | | |
| | | traverse ( finaleProductInStockingPoint_MPs, Elements, fpispmp ) { |
| | | capacityAllocationResultsRuleConfigurations := selectset( globalOTDTable, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = fpispmp.ProductID() and tempCARRC.StockingPointID() = fpispmp.StockingPointID() ); |
| | | info( "生产的产品:", fpispmp.ProductID(), "------产品在库存点-------:", fpispmp.StockingPointID() ); |
| | | // info( "生产的产品:", fpispmp.ProductID(), "------产品在库存点-------:", fpispmp.StockingPointID() ); |
| | | traverse ( period_MPS, Elements, pmp ) { |
| | | // CapacityAllocationResults::IterativeGeneration( globalOTDTable, pisp, 1, null( NewSupply ), -1.0, pmp.StartDate() ); 老版 |
| | | CapacityAllocationResults::IterativeGeneration2( globalOTDTable, fpispmp, pmp.StartDate(), capacityAllocationResultsRuleConfigurations, 0, null( NewSupply ), 0.0 ); |
| | |
| | | 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(), |
| | |
| | | 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(), |