From 5ae534ab606e6f2ba5ea60914224d665b0447d5a Mon Sep 17 00:00:00 2001
From: Kevin Kok Khah Whey <khahwhey.kok@3ds.com>
Date: 星期二, 07 十一月 2023 22:48:31 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev_Kevin

---
 _Main/BL/Type_MacroPlan/StaticMethod_DoASync#253.qbl |  108 +++++++++++++++++++----------------------------------
 1 files changed, 39 insertions(+), 69 deletions(-)

diff --git "a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl" "b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl"
index 8e5e156..f3ad992 100644
--- "a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl"
+++ "b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl"
@@ -2,11 +2,11 @@
 #parent: #root
 StaticMethod DoASync (
   MacroPlan macroPlan,
-  Strings businessTypes,
+  const BusinessType businessType,
   Boolean isKeyProduct,
   Boolean createPurchaseSupplyMaterial,
   const GlobalOTDTable globalOTDTable
-)
+) as stream[MacroPlan]
 {
   Description: '鍗曟鍚屾'
   TextBody:
@@ -16,25 +16,16 @@
     //Currency_MP::CreateCurrencyFromJson( macroPlan, jsonDataRow );
     info( "Prepare to do sync" )
     info( "Get organ code list" )
-    organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
-    if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) {
-        traverse( businessTypes, Elements, item ) {
-            info( "Business type : " + item )  
-        }
-        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
-    }
-    else{
-      if( businessTypes.Size() = 0 ){
-        if( not isnull( selectset( globalOTDTable, BusinessType, b, b.BusinessTypeName() = "" ) ) ){
-          organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, organ.BusinessType().BusinessTypeName() = "", organ.OrganCodeName() );
-          }
-        }
-      }
+    businessTypeName := businessType.BusinessTypeName().Tokenize( "," );
+    macroPlan.BusinessType( businessType.BusinessTypeName() );
+    
+    organcodelist := selectvalues( businessType, OrganCode, organ, true, organ.OrganCodeName() );
     
     if( organcodelist.Size() = 0 ){
-      organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
+      organcodelist := selectuniquevalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
       }
     
+    info( "Organcode list : " + organcodelist.ToString( "-" ) );
     info( "KeyProduct : " + [String]isKeyProduct )
     info( "Create purchase supply material : " + [String]createPurchaseSupplyMaterial )
     
@@ -46,113 +37,90 @@
     UnitOfMeasure_MP::DoASync( globalOTDTable, macroPlan );
     
     // 閿�鍞儴闂�-2
-    SalesSegment_MP::DoASync( macroPlan, businessTypes,globalOTDTable );
+    SalesSegment_MP::DoASync( macroPlan, businessTypeName,globalOTDTable );
     
     // Unit-9 
     // 涓嶰peration涓�鍚屽鐞�
     //info( "BaseConversionFactor Finished, Start Operation Data Broker" );
     //macroPlan.Broker_OTD_Operation().Execute();
     info( "Operation Data Broker Finished, Start Unit Mapping" );
-    macroPlan.DoASyncMappingUnitData( businessTypes ,globalOTDTable, organcodelist);
+    macroPlan.DoASyncMappingUnitData( businessTypeName ,globalOTDTable, organcodelist);
     
     // 搴撳瓨鐐�-3
-    info( "Sales Segment Finished, Start Get StockingPoint From Api" )
-    bodynumber := "2";
-    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
-    address := "api-uat-sgc.tianma.cn";
-    url := "/otdService/https/GetStockingPointsInfo";
-    port := 443;
-    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
-    macroPlan.ApiStockingPointData( data );
+    info( "Sales Segment Finished, Start Get StockingPoint From Mapping" )
+    StockingPoint_MP::CreateFromMapping( globalOTDTable, macroPlan );
+    //parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "StockingPoint" );
+    //postrequestbody := parameter.PostRequestBody();
+    //address := parameter.Address();
+    //url := parameter.AttributeValue();
+    //port := [Number]parameter.Port();
+    //data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
+    //macroPlan.ApiStockingPointData( data );
     
     // 璐у竵淇℃伅-4
-    info( "Get StockingPoint From Api Finished, Start Get CurrencyInfo From Api" )
-    bodynumber := "1";
-    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
-    address := "api-uat-sgc.tianma.cn";
-    url := "/otdService/https/GetCurrenciesInfo";
-    port := 443;
-    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
-    macroPlan.ApiCurenciesData( data );
+    info( "Get StockingPoint From Api Finished, Start Get CurrencyInfo From Mapping" )
+    Currency_MP::CreateFromMapping( globalOTDTable, macroPlan );
     
     //璐у竵姹囩巼淇℃伅-5
-    info( "Get CurrencyInfo From Api Finished, Start Get CurrencyRates From Api" )
-    bodynumber := "5";
-    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
-    address := "api-uat-sgc.tianma.cn";
-    url := "/otdService/https/GetCurrencyRatesInfo";
-    port := 443;
-    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
-    macroPlan.ApiCurencyRatesData( data );
+    info( "Get CurrencyInfo From Api Finished, Start Get CurrencyRates From Mapping" )
+    CurrencyRate_MP::CreateFromMapping( globalOTDTable, macroPlan );
     
     // 浜у搧鐗╂枡-6
     //info( "Get CurrencyRates From Api Finished, Start Product Data Broker" )
     //macroPlan.Broker_OTD_Product().Execute();
     info( "Product Data Broker Finished, Start Product Mapping" );
     //testproduct := construct( Strings );
-    macroPlan.DoASyncMappingProductData( businessTypes, globalOTDTable,isKeyProduct );
+    macroPlan.DoASyncMappingProductData( businessTypeName, globalOTDTable,isKeyProduct );
     
     //鍗曚綅杞崲-7
     BaseConversionFactor::DoASync( macroPlan ,globalOTDTable);
     
     // 宸ヨ壓璺嚎 + BOM-9
     info( "Unit Finished, Start Operation Mapping" );
-    macroPlan.DoASyncMappingOperationData( businessTypes ,globalOTDTable, organcodelist );  
+    macroPlan.DoASyncMappingOperationData( businessTypeName ,globalOTDTable, organcodelist );  
     //info( "Operation Finished, Start BOM Data Broker" );
     //macroPlan.Broker_OTD_BOM().Execute();
     info( "BOM Data Broker Finished, Start BOM Mapping" );
-    macroPlan.DoASyncMappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist );
+    macroPlan.DoASyncMappingOperationBOMData( businessTypeName, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist );
     
     //杞﹂亾淇℃伅-10
-    info( "BOM Finished, Start Get Lanes From Api" );
-    bodynumber := "3";
-    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
-    address := "api-uat-sgc.tianma.cn";
-    url := "/otdService/https/GetLanesInfo";
-    port := 443;
-    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
-    macroPlan.ApiLanesData( data );
+    info( "BOM Finished, Start Get Lanes From Mapping" );
+    Lane::CreasteFromMapping( globalOTDTable, macroPlan );
     
     //杞﹂亾杩愯緭娈�-11
-    info( "Get Lanes From Api Finished, Start Get LaneLegs From Api" );
-    bodynumber := "4";
-    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
-    address := "api-uat-sgc.tianma.cn";
-    url := "/otdService/https/GetLaneLegsInfo";
-    port := 443;
-    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
-    macroPlan.ApiLaneLegsData( data );
+    info( "Get Lanes From Api Finished, Start Get LaneLegs From Mapping" );
+    LaneLeg::CreateFromMapping( globalOTDTable, macroPlan );
     
     // 渚涘簲缃戠粶锛堣溅閬擄級-12
     //info( "Get Lanelegs From Api Finished, Start ProductInLane Data Broker" );
     //macroPlan.Broker_OTD_ProductInLane().Execute();
     info( "ProductInLane Data Broker Finished, Start ProductInLane Mapping" );
-    macroPlan.DoASyncMappingProductInLaneData(globalOTDTable);
+    macroPlan.DoASyncMappingProductInLaneData( globalOTDTable,businessTypeName );
     
     // 鍦ㄥ簱搴撳瓨鏁版嵁-13
     //info( "ProductInLane Finished, Start ActualPISPIP Data Broker" );
     //macroPlan.Broker_OTD_ActualPISPIP().Execute();
     info( "ActualPISPIP Data Broker Finished, Start ActualPISPIP Mapping" );
-    macroPlan.DoASyncMappingActualPISPIPData( businessTypes, globalOTDTable,isKeyProduct, organcodelist );
+    macroPlan.DoASyncMappingActualPISPIPData( businessTypeName, globalOTDTable,isKeyProduct, organcodelist );
     
     // 鍦ㄩ�斿簱瀛�-14
     //info( "ActualPISPIP Finished, Start ExternalSupply Data Broker" );
     //macroPlan.Broker_OTD_ExternalSupply().Execute();
     info( "ExternalSupply Data Broker Finished, Start ExternalSupply Mapping" );
-    macroPlan.DoASyncMappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable, organcodelist );
+    macroPlan.DoASyncMappingExternalSupplyData( businessTypeName, isKeyProduct ,globalOTDTable, organcodelist );
     
     // 搴撳瓨鎴愭湰-15
-    InventoryValueAndCost::DoASync( macroPlan,globalOTDTable );
+    InventoryValueAndCost::DoASync( macroPlan,globalOTDTable,businessTypeName );
     
     // todo 鍒堕�犳垚鏈�-16
     info( "InventoryCost Finished, Start OperationCost Mapping" );
-    macroPlan.DoASyncMappingOperationCostData( globalOTDTable, businessTypes, organcodelist );
+    macroPlan.DoASyncMappingOperationCostData( globalOTDTable, businessTypeName, organcodelist );
     
     // 璁㈠崟棰勬祴-17
-    Forecast::DoASync( macroPlan, businessTypes, globalOTDTable, organcodelist );
+    Forecast::DoASync( macroPlan, businessTypeName, globalOTDTable, organcodelist );
     
     // 璁㈠崟闇�姹�-18
-    CustomerOrder::DoASync( macroPlan, businessTypes, globalOTDTable, organcodelist );
+    CustomerOrder::DoASync( macroPlan, businessTypeName, globalOTDTable, organcodelist );
     
     //鍒犻櫎澶氫綑鎶ラ敊鏁版嵁-19
     macroPlan.DeleteSnaityCheck();
@@ -162,5 +130,7 @@
     
     //// todo 渚涘簲鍟嗗洖澶�
     //info( "ProviderReply::DoSync" )
+    
+    return emit( macroPlan );
   *]
 }

--
Gitblit v1.9.3