From b51233c005f97c52054a4f1d63a745b76d351f85 Mon Sep 17 00:00:00 2001
From: hongji.li <hongji.a.li@capgemini.com>
Date: 星期四, 19 十月 2023 11:09:04 +0800
Subject: [PATCH] 异步分发BusinessType修改

---
 _Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Response_pnlActions_btnOk_OnClick.def                           |   11 +--
 /dev/null                                                                                                                    |   23 -------
 _Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Component_pnlContent.def                                        |   39 +++++++++----
 _Main/BL/Type_MacroPlan/StaticMethod_DoASync#253.qbl                                                                         |   42 +++++--------
 _Main/BL/Type_MacroPlan/StaticMethod_DoASync.qbl                                                                             |    6 +-
 _Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Method_DataDistribution.def                                     |    2 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_DataHolderAllScenario_OnDataChanged.def |    4 -
 7 files changed, 49 insertions(+), 78 deletions(-)

diff --git "a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl" "b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl"
index 8e5e156..587e798 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,
+  BusinessType businessType,
   Boolean isKeyProduct,
   Boolean createPurchaseSupplyMaterial,
   const GlobalOTDTable globalOTDTable
-)
+) as stream[MacroPlan]
 {
   Description: '鍗曟鍚屾'
   TextBody:
@@ -16,20 +16,8 @@
     //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( "," );
+    organcodelist := selectvalues( businessType, OrganCode, organ, true, organ.OrganCodeName() );
     
     if( organcodelist.Size() = 0 ){
       organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
@@ -46,14 +34,14 @@
     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" )
@@ -90,18 +78,18 @@
     //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" );
@@ -133,26 +121,26 @@
     //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 );
     
     // 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 +150,7 @@
     
     //// todo 渚涘簲鍟嗗洖澶�
     //info( "ProviderReply::DoSync" )
+    
+    return emit( macroPlan );
   *]
 }
diff --git "a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043896.qbl" "b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043896.qbl"
deleted file mode 100644
index fc549a7..0000000
--- "a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043896.qbl"
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod DoASync (
-  MacroPlan macroPlan,
-  String businessTypeStr,
-  Boolean isKeyProduct,
-  Boolean createPurchaseSupplyMaterial,
-  const GlobalOTDTable globalOTDTable
-) as stream[MacroPlan]
-{
-  Description: '鍗曟鍚屾'
-  TextBody:
-  [*
-    // yypsybs Aug-17-2023 (created)
-    businessTypes := construct( Strings );
-    if( businessTypeStr.Length() > 0 ) {
-        businessTypes := businessTypeStr.Tokenize( ',' );
-    }
-    MacroPlan::DoASync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ,globalOTDTable);
-    
-    return emit( macroPlan );
-  *]
-}
diff --git a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync.qbl b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync.qbl
index 4fb0a6b..b59ea06 100644
--- a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync.qbl
+++ b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync.qbl
@@ -2,7 +2,7 @@
 #parent: #root
 StaticMethod DoASync (
   Scenario scenario,
-  String businessTypeStr,
+  BusinessType businessType,
   Boolean isKeyProduct,
   Boolean createPurchaseSupplyMaterial,
   const GlobalOTDTable globalOTDTable
@@ -10,10 +10,10 @@
 {
   TextBody:
   [*
-    info( scenario.DatasetMDSID(), "    浜嬩笟閮細", businessTypeStr, "    isKeyProduct锛�", isKeyProduct, "    createPurchaseSupplyMaterial锛�", createPurchaseSupplyMaterial );
+    info( scenario.DatasetMDSID(), "    浜嬩笟閮細", businessType.BusinessTypeName(), "    isKeyProduct锛�", isKeyProduct, "    createPurchaseSupplyMaterial锛�", createPurchaseSupplyMaterial );
     
     MDSMacroPlan::Root( scenario.DatasetMDSID() )
-    -> MacroPlan::DoASync( businessTypeStr,
+    -> MacroPlan::DoASync( businessType,
                            isKeyProduct,
                            createPurchaseSupplyMaterial,
                            globalOTDTable
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_DataHolderAllScenario_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_DataHolderAllScenario_OnDataChanged.def
index b50a78a..0470654 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_DataHolderAllScenario_OnDataChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_DataHolderAllScenario_OnDataChanged.def
@@ -6,10 +6,6 @@
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
   GroupServerCalls: true
-  Precondition:
-  [*
-    
-  *]
   QuillAction
   {
     Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Component_pnlContent.def
index 5c05df7..a5e8867 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Component_pnlContent.def
@@ -5,18 +5,6 @@
   BaseType: 'WebPanel'
   Children:
   [
-    Component dropDownStringListGeneral id:dropDownStringListGeneral_549
-    {
-      #keys: '[414702.1.87540205]'
-      BaseType: 'WebDropDownStringList'
-      Properties:
-      [
-        AllowEmpty: true
-        DataBinding: 'DataHolderScenario.Data.ScenarioName'
-        Label: 'Scenario Name'
-        Taborder: 0
-      ]
-    }
     Component checkboxIsKeyProduct id:checkboxIsKeyProduct_593
     {
       #keys: '[414702.1.87540263]'
@@ -49,6 +37,33 @@
         Taborder: 3
       ]
     }
+    Component ddlBusinessType
+    {
+      #keys: '[414702.1.169614090]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'BusinessType'
+      Children:
+      [
+        Component deContent
+        {
+          #keys: '[414702.1.169614092]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'GlobalOTDTable'
+            Source: 'GlobalOTDTable'
+            Taborder: 0
+            Transformation: 'BusinessType'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DisplayField: 'ScenarioName'
+        Label: 'Scenario Name'
+        Taborder: 0
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Method_DataDistribution.def b/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Method_DataDistribution.def
index c72dc11..08f0bf0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Method_DataDistribution.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Method_DataDistribution.def
@@ -9,8 +9,6 @@
   [*
     DataHolderScenario.Data( scenario );
     
-    dropDownStringListGeneral.Strings( GlobalOTDTable::GetBusnessStrings( GlobalOTDTable ) );
-    
     ApplicationMacroPlanner.ShowFormModal( this );
   *]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Response_pnlActions_btnOk_OnClick.def
index fcba155..d4696a6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Response_pnlActions_btnOk_OnClick.def
@@ -10,8 +10,9 @@
     
     activeScenario := DataHolderActiveScenario.Data();
     currentScenario := DataHolderScenario.Data();
+    businessType := ddlBusinessType.Data();
     
-    if ( activeScenario = currentScenario ) {
+    if ( activeScenario = currentScenario or isnull( businessType ) ) {
       flag := false;
       feedback := "鏃犳硶瀵瑰綋鍓嶉�変腑鍦烘櫙杩涜鍒嗗彂";
     }
@@ -30,15 +31,9 @@
     [*
       Form.ApplyChanges();
       
-      businessType := select( GlobalOTDTable, 
-                              BusinessType, 
-                              b, 
-                              b.ScenarioName() = dropDownStringListGeneral.Text()
-                             );
-      
       DataDistributionLog::Create( GlobalOTDLog, ApplicationMacroPlanner.GetUserName(), DataHolderScenario.Data().DatasetMDSID(), DataHolderScenario.Data().Name() );
       MacroPlan::DoASync( DataHolderScenario.Data(), 
-                          businessType.BusinessTypeName(),
+                          ddlBusinessType.Data(),
                           checkboxIsKeyProduct.Checked(), 
                           checkboxCreatePurchaseSupplyProduct.Checked(),
                           GlobalOTDTable );

--
Gitblit v1.9.3