From 3cb5a54def670d97301f07170fcaad213bfc54f2 Mon Sep 17 00:00:00 2001 From: yypsybs <yypsybs@foxmail.com> Date: 星期六, 09 九月 2023 15:30:46 +0800 Subject: [PATCH] 同步逻辑由MacroPlan移到MPSync --- _Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting#576.qbl | 162 +++++++++++++++++++++++++++--------------------------- 1 files changed, 81 insertions(+), 81 deletions(-) diff --git "a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl" "b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl" index 03a3858..3eb9f87 100644 --- "a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl" +++ "b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl" @@ -9,87 +9,87 @@ { TextBody: [* - // yypsybs Aug-21-2023 (created) - - // 鏍规嵁宸ヨ壓娈垫眹鎬诲鐞� - processSections := selectuniquevalues( routingRows, Elements, row, true, row.ProcessSection() ); - traverse( processSections, Elements, processSection ) { - rows := selectset( routingRows, Elements, row, row.ProcessSection() = processSection ); - firstRow := rows.Element( 0 ); - // 鎵緊rgCode/productId/processSection鍖归厤涓攕equence鏈�灏忕殑涓�缁勬暟鎹� - minSeq := MappingOperation::FindMinSeq( this, firstRow.OrganCode(), firstRow.ProductCode(), processSection ); - routingStepId := processSection + "_" + [String]minSeq; - // 鎵惧搴攔outingStep - routingStep := RoutingStep::FindByName( routing, routingStepId ); - if( not isnull( routingStep ) ) { - // error( "routing step : " + routing.ID() + "|" + routingStepId + " not found" ); - // 浠呬富鏂欙紝缁熶竴澶勭悊 - noAlterRows := selectset( rows, Elements, noAlterRow, noAlterRow.AlternativeMaterialCode() = "" ); - traverse( noAlterRows, Elements, noAlterRow ) { - traverse( routingStep, Operation, toLink ) { - // 妫�鏌ヤ富鏂� - component := Product_MP::FindById( this, noAlterRow.ComponentCode() ); - if( not isnull( component ) ) { - // error( "component : " + noAlterRow.ComponentCode() + " not found" ); - // 杩炴帴浜у搧涓巓peration - pisp := ProductInStockingPoint_MP::CreateIfNotFound( component, stockingPoint ); - trash := construct( OperationBOMs ); - operationBOM := toLink.LinkProduct( component, true, BaseOperationLink::GetGroupID( toLink, true, false ), pisp, - true, trash ); - operationBOM.MinQuantityInGroup( 0 ); - operationBOM.Quantity( noAlterRow.UnitUsageOfComponents() / noAlterRow.ComponentOutputRate() ); - operationBOM.MaxQuantityInGroup( noAlterRow.UnitUsageOfComponents() / noAlterRow.ComponentOutputRate() ); - } - } - } - // 鏇挎崲鏂欙紝鎸変富鏂欏垎缁勫鐞� - alterComponentIds := selectuniquevalues( rows, Elements, row, row.AlternativeMaterialCode() <> "", row.ComponentCode() ); - traverse( alterComponentIds, Elements, alterComponentId ) { - alterRows := selectset( rows, Elements, row, row.ComponentCode() = alterComponentId ); - firstAlterRow := alterRows.Element( 0 ); - // 妫�鏌ヤ富鏂� - component := Product_MP::FindById( this, firstAlterRow.ComponentCode() ); - if( not isnull( component ) ) { - // error( "component : " + firstAlterRow.ComponentCode() + " not found" ); + //// yypsybs Aug-21-2023 (created) + // + //// 鏍规嵁宸ヨ壓娈垫眹鎬诲鐞� + //processSections := selectuniquevalues( routingRows, Elements, row, true, row.ProcessSection() ); + //traverse( processSections, Elements, processSection ) { + // rows := selectset( routingRows, Elements, row, row.ProcessSection() = processSection ); + // firstRow := rows.Element( 0 ); + // // 鎵緊rgCode/productId/processSection鍖归厤涓攕equence鏈�灏忕殑涓�缁勬暟鎹� + // minSeq := MappingOperation::FindMinSeq( this, firstRow.OrganCode(), firstRow.ProductCode(), processSection ); + // routingStepId := processSection + "_" + [String]minSeq; + // // 鎵惧搴攔outingStep + // routingStep := RoutingStep::FindByName( routing, routingStepId ); + // if( not isnull( routingStep ) ) { + //// error( "routing step : " + routing.ID() + "|" + routingStepId + " not found" ); + // // 浠呬富鏂欙紝缁熶竴澶勭悊 + // noAlterRows := selectset( rows, Elements, noAlterRow, noAlterRow.AlternativeMaterialCode() = "" ); + // traverse( noAlterRows, Elements, noAlterRow ) { + // traverse( routingStep, Operation, toLink ) { + // // 妫�鏌ヤ富鏂� + // component := Product_MP::FindById( this, noAlterRow.ComponentCode() ); + // if( not isnull( component ) ) { + //// error( "component : " + noAlterRow.ComponentCode() + " not found" ); + // // 杩炴帴浜у搧涓巓peration + // pisp := ProductInStockingPoint_MP::CreateIfNotFound( component, stockingPoint ); + // trash := construct( OperationBOMs ); + // operationBOM := toLink.LinkProduct( component, true, BaseOperationLink::GetGroupID( toLink, true, false ), pisp, + // true, trash ); + // operationBOM.MinQuantityInGroup( 0 ); + // operationBOM.Quantity( noAlterRow.UnitUsageOfComponents() / noAlterRow.ComponentOutputRate() ); + // operationBOM.MaxQuantityInGroup( noAlterRow.UnitUsageOfComponents() / noAlterRow.ComponentOutputRate() ); + // } // } - traverse( routingStep, Operation, toLink ) { - // 杩炴帴浜у搧涓巓peration - pisp := ProductInStockingPoint_MP::CreateIfNotFound( component, stockingPoint ); - trash := construct( OperationBOMs ); - mainBOM := toLink.LinkProduct( component, true, BaseOperationLink::GetGroupID( toLink, true, false ), pisp, - true, trash ); - mainBOM.Quantity( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() ); - mainBOM.MaxQuantityInGroup( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() ); - mainQty := mainBOM.Quantity(); - Transaction::Transaction().Propagate(); - // 娣诲姞杈呮枡 - traverse( alterRows, Elements, alterRow ) { - alterProd := Product_MP::FindById( this, alterRow.AlternativeMaterialCode() ); - if( not isnull( alterProd ) ) { - // error( "alterProd : " + alterRow.AlternativeMaterialCode() + " not found" ); - stockingPointIdAlter := alterRow.OrganCode() + "_" + alterRow.ProductType() + "_STOCK"; - stockingPointAlter := StockingPoint_MP::FindById( this, stockingPointIdAlter ); - if( isnull( stockingPointAlter ) ) { - error( "stockingPoint : " + stockingPointIdAlter + " not found" ); - } - pispAlter := ProductInStockingPoint_MP::CreateIfNotFound( alterProd, stockingPointAlter ); - mainInput := toLink.LastOperationInput(); - trash := construct( OperationBOMs ); - if( not isnull( mainInput ) ) { - alterBom := mainInput.Operation().LinkPISP( pispAlter, true, mainInput.OperationLinkGroupID(), trash ); - alterBom.Quantity( mainBOM.MaxQuantityInGroup() * alterRow.AlternativeRate() ); - alterBom.MaxQuantityInGroup( mainBOM.MaxQuantityInGroup() ); - // info( "Quantity" + [String]alterBom.Quantity() ) - // info( "MaxQuantityInGroup" + [String]alterBom.MaxQuantityInGroup() ) - mainQty := mainQty - alterBom.Quantity(); - } - } - mainBOM.Quantity( mainQty ); - } - } - } - } - } - } + // } + // // 鏇挎崲鏂欙紝鎸変富鏂欏垎缁勫鐞� + // alterComponentIds := selectuniquevalues( rows, Elements, row, row.AlternativeMaterialCode() <> "", row.ComponentCode() ); + // traverse( alterComponentIds, Elements, alterComponentId ) { + // alterRows := selectset( rows, Elements, row, row.ComponentCode() = alterComponentId ); + // firstAlterRow := alterRows.Element( 0 ); + // // 妫�鏌ヤ富鏂� + // component := Product_MP::FindById( this, firstAlterRow.ComponentCode() ); + // if( not isnull( component ) ) { + //// error( "component : " + firstAlterRow.ComponentCode() + " not found" ); + //// } + // traverse( routingStep, Operation, toLink ) { + // // 杩炴帴浜у搧涓巓peration + // pisp := ProductInStockingPoint_MP::CreateIfNotFound( component, stockingPoint ); + // trash := construct( OperationBOMs ); + // mainBOM := toLink.LinkProduct( component, true, BaseOperationLink::GetGroupID( toLink, true, false ), pisp, + // true, trash ); + // mainBOM.Quantity( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() ); + // mainBOM.MaxQuantityInGroup( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() ); + // mainQty := mainBOM.Quantity(); + // Transaction::Transaction().Propagate(); + // // 娣诲姞杈呮枡 + // traverse( alterRows, Elements, alterRow ) { + // alterProd := Product_MP::FindById( this, alterRow.AlternativeMaterialCode() ); + // if( not isnull( alterProd ) ) { + // // error( "alterProd : " + alterRow.AlternativeMaterialCode() + " not found" ); + // stockingPointIdAlter := alterRow.OrganCode() + "_" + alterRow.ProductType() + "_STOCK"; + // stockingPointAlter := StockingPoint_MP::FindById( this, stockingPointIdAlter ); + // if( isnull( stockingPointAlter ) ) { + // error( "stockingPoint : " + stockingPointIdAlter + " not found" ); + // } + // pispAlter := ProductInStockingPoint_MP::CreateIfNotFound( alterProd, stockingPointAlter ); + // mainInput := toLink.LastOperationInput(); + // trash := construct( OperationBOMs ); + // if( not isnull( mainInput ) ) { + // alterBom := mainInput.Operation().LinkPISP( pispAlter, true, mainInput.OperationLinkGroupID(), trash ); + // alterBom.Quantity( mainBOM.MaxQuantityInGroup() * alterRow.AlternativeRate() ); + // alterBom.MaxQuantityInGroup( mainBOM.MaxQuantityInGroup() ); + //// info( "Quantity" + [String]alterBom.Quantity() ) + //// info( "MaxQuantityInGroup" + [String]alterBom.MaxQuantityInGroup() ) + // mainQty := mainQty - alterBom.Quantity(); + // } + // } + // mainBOM.Quantity( mainQty ); + // } + // } + // } + // } + // } + //} *] } -- Gitblit v1.9.3