From f3dec8f5b480474c9a3b2ea0fabb0f6b9fdc0423 Mon Sep 17 00:00:00 2001
From: renhao <renhui.hao@capgemini.com>
Date: 星期五, 13 十月 2023 17:11:34 +0800
Subject: [PATCH] Merge branch 'dev'
---
_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl | 123 +++++++++++++++++++++++++++++++++++-----
1 files changed, 107 insertions(+), 16 deletions(-)
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
index 493d9c1..6dd9ddc 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
@@ -3,24 +3,28 @@
Method MappingOperationBOMData (
Strings businessTypes,
Boolean isKeyProduct,
- Boolean createPurchaseSupplyMaterial
+ Boolean createPurchaseSupplyMaterial,
+ GlobalOTDTable globalOTDTable,
+ Strings organcodelist
)
{
TextBody:
[*
// yypsybs Aug-21-2023 (created)
-
keyProductList := construct( Strings );
if( isKeyProduct ) {
- keyProductList := selectuniquevalues( this, MappingProduct, item, item.KeyProduct(), item.ID() );
+ keyProductList := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="鎴愬搧" or item.ProductMajorType()="鍗婃垚鍝�", item.ID() );
}
- bomList := selectsortedset( this, MappingBOM, item,
+ bomList := selectsortedset( globalOTDTable, Global_MappingOperationBOM, item,
ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0,
true,
- businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 )
- and ifexpr( isKeyProduct,
- keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0,
- true ),
+ // businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 )
+ ( businessTypes.Find( item.BusinessType() ) >= 0 ) and
+ ( organcodelist.Find( item.OrganCode() ) >= 0 ) )
+ // and ifexpr( isKeyProduct,
+ // keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0,
+ // true )
+ ,
item.OrganCode() + "_" + item.ProductCode() + "_" + item.ProcessSection() );
// 鎸塺outing鍙妑outingStep鍒嗙粍
routingIds := selectuniquevalues( bomList, Elements, item, true, item.OrganCode() + "_" + item.ProductCode() );
@@ -28,17 +32,21 @@
routingRows := selectset( bomList, Elements, item, true, routingId = item.OrganCode() + "_" + item.ProductCode() );
if( routingRows.Size() > 0 ) {
firstRow := routingRows.Element( 0 );
- stockingPointId := firstRow.OrganCode() + "_" + firstRow.ProductType() + "_STOCK";
+ // stockingPointId := firstRow.OrganCode() + "_" + firstRow.ProductType() + "_Stock";
+ // inputStockingPointId := firstRow.OrganCode() + "_" + firstRow.ComponentType() + "_Stock";
+ stockingPointId := firstRow.OrganCode() + "_Stock";
+
// ========妫�鏌�========
- product := Product_MP::FindById( this, firstRow.ProductCode() );
+ product := Product_MP::FindProductTypeIndex( firstRow.ProductCode() );
if( not isnull( product ) ) {
// error( "product : " + firstRow.ProductCode() + " not found" );
- stockingPoint := StockingPoint_MP::FindById( this, stockingPointId );
+ stockingPoint := StockingPoint_MP::FindStockingPointTypeIndex( stockingPointId );
+
// info( stockingPointId.AsQUILL() );
// if( isnull( stockingPoint ) ) {
// error( "stockingPoint : " + stockingPointId + " not found" );
// }
- routing := Routing::FindById( this, routingId );
+ routing := Routing::FindRoutingTypeIndex( routingId );
if( not isnull( routing ) ) {
// error( "routing : " + routingId + " not found" );
// ========澶勭悊杈撳嚭========
@@ -50,7 +58,17 @@
operationsInLastStep.GetOperationBOM( product.ID(), stockingPoint.ID(), false ).Quantity( 1 );
}
// ========鍒嗙粍澶勭悊杈撳叆========
- this.MappingOperationBOMDataRouting( routing, routingRows, stockingPoint, keyProductList );
+
+ }
+
+ if( not isnull( stockingPoint)){
+ if( isKeyProduct){
+ keyRows := selectset( routingRows,Elements,routingrow,keyProductList.Find( routingrow.ComponentCode())>=0);
+ this.MappingOperationBOMDataRouting( routing,globalOTDTable,keyRows);
+ }else{
+ this.MappingOperationBOMDataRouting( routing,globalOTDTable,routingRows);
+ }
+
}
}
}
@@ -58,12 +76,85 @@
}
if( createPurchaseSupplyMaterial ) {
toCreateBomList := selectuniquevalues( bomList, Elements, item,
- item.ProductType() = "P", item.OrganCode() + item.ComponentCode());
+ item.ComponentType() = "P" and keyProductList.Find( item.ComponentCode())>=0, item.OrganCode() + item.ComponentCode());
traverse( toCreateBomList, Elements, key ) {
- boms := selectset( bomList, Elements, item, item.ProductType() = "P" and item.OrganCode() + item.ComponentCode() = key );
+ boms := selectset( bomList, Elements, item, item.ComponentType() = "P" and item.OrganCode() + item.ComponentCode() = key );
bom := boms.First();
- this.MappingOperationBOMDataSupplyPurchase( bom.OrganCode(), bom.ComponentCode(), bom.ProductType() );
+ this.MappingOperationBOMDataSupplyPurchase( bom.OrganCode(), bom.ComponentCode(), bom.ComponentType());
}
}
+
+
+ //
+ //keyProductList := construct( Strings );
+ //if( isKeyProduct ) {
+ // keyProductList := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="鎴愬搧" or item.ProductMajorType()="鍗婃垚鍝�", item.ID() );
+ //}
+ //bomList := selectsortedset( globalOTDTable, Global_MappingOperationBOM, item,
+ // ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0,
+ // true,
+ //// businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 )
+ // businessTypes.Find( item.BusinessType() ) >= 0 )
+ //// and ifexpr( isKeyProduct,
+ //// keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0,
+ //// true )
+ // ,
+ // item.OrganCode() + "_" + item.ProductCode() + "_" + item.ProcessSection() );
+ //// 鎸塺outing鍙妑outingStep鍒嗙粍
+ //routingIds := selectuniquevalues( bomList, Elements, item, true, item.OrganCode() + "_" + item.ProductCode() );
+ //traverse( routingIds, Elements, routingId ) {
+ // routingRows := selectset( bomList, Elements, item, true, routingId = item.OrganCode() + "_" + item.ProductCode() );
+ // if( routingRows.Size() > 0 ) {
+ // firstRow := routingRows.Element( 0 );
+ //// stockingPointId := firstRow.OrganCode() + "_" + firstRow.ProductType() + "_Stock";
+ //// inputStockingPointId := firstRow.OrganCode() + "_" + firstRow.ComponentType() + "_Stock";
+ // stockingPointId := firstRow.OrganCode() + "_Stock";
+ //
+ // // ========妫�鏌�========
+ // product := Product_MP::FindProductTypeIndex( firstRow.ProductCode() );
+ // if( not isnull( product ) ) {
+ //// error( "product : " + firstRow.ProductCode() + " not found" );
+ // stockingPoint := StockingPoint_MP::FindStockingPointTypeIndex( stockingPointId );
+ //
+ //// info( stockingPointId.AsQUILL() );
+ // // if( isnull( stockingPoint ) ) {
+ // // error( "stockingPoint : " + stockingPointId + " not found" );
+ // // }
+ // routing := Routing::FindRoutingTypeIndex( routingId );
+ // if( not isnull( routing ) ) {
+ //// error( "routing : " + routingId + " not found" );
+ // // ========澶勭悊杈撳嚭========
+ // if( not isnull( stockingPoint ) ) {
+ //// info( 1 );
+ // operationsInLastSteps := Operation::FindFinalOperationsByRoutingId( this, routingId );
+ // traverse( operationsInLastSteps, Elements, operationsInLastStep ) {
+ // operationsInLastStep.CreateOperationBOM( product, stockingPoint, false, true );
+ // operationsInLastStep.GetOperationBOM( product.ID(), stockingPoint.ID(), false ).Quantity( 1 );
+ // }
+ // // ========鍒嗙粍澶勭悊杈撳叆========
+ //
+ // }
+ // if( not isnull( stockingPoint)){
+ // if( isKeyProduct){
+ // keyRows := selectset( routingRows,Elements,routingrow,keyProductList.Find( routingrow.ComponentCode())>=0);
+ // this.MappingOperationBOMDataRouting( routing,globalOTDTable,keyRows);
+ // }else{
+ // this.MappingOperationBOMDataRouting( routing,globalOTDTable,routingRows);
+ // }
+ //
+ // }
+ // }
+ // }
+ // }
+ //}
+ //if( createPurchaseSupplyMaterial ) {
+ // toCreateBomList := selectuniquevalues( bomList, Elements, item,
+ // item.ComponentType() = "P", item.OrganCode() + item.ComponentCode());
+ // traverse( toCreateBomList, Elements, key ) {
+ // boms := selectset( bomList, Elements, item, item.ComponentType() = "P" and item.OrganCode() + item.ComponentCode() = key );
+ // bom := boms.First();
+ // this.MappingOperationBOMDataSupplyPurchase( bom.OrganCode(), bom.ComponentCode(), bom.ComponentType());
+ // }
+ //}
*]
}
--
Gitblit v1.9.3