From 6d3afbb413ae163ac9cd68ae210adf979af9e7fd Mon Sep 17 00:00:00 2001
From: lihongji <3117313295@qq.com>
Date: 星期一, 27 五月 2024 09:48:10 +0800
Subject: [PATCH] 需求导入优化

---
 _Main/BL/Type_DMF_CustomLogic/Method_OnFinished.qbl                                                                                            |    3 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_dhRequirementImportExecuti.def |   14 +++
 _Main/BL/Type_Archive/StaticMethod_HandlePR.qbl                                                                                                |    6 +
 _Main/BL/Type_Archive/StaticMethod_OnException.qbl                                                                                             |   17 ++++
 _Main/BL/Relations/Relation_RequirementImportExecutionStatus_ArchiveExecutionStatus_ArchiveExec.qbl                                            |   23 +++++
 _Main/BL/Type_Archive/StaticMethod_Success.qbl                                                                                                 |    9 ++
 _Main/BL/Type_RequirementImportExecutionStatus/Attribute_ExecutionIsSuccess.qbl                                                                |    7 +
 _Main/BL/Type_ArchiveExecutionStatus/StaticMethod_OnServerStartup.qbl                                                                          |   21 +++++
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_deRequirementImportExecuti.def |   16 ++++
 /dev/null                                                                                                                                      |   16 ----
 _Main/BL/Type_RequirementImportExecutionStatus/Method_Filter.qbl                                                                               |    8 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Method_OnOK.def                                                                  |    2 
 _Main/BL/Dataset_ArchiveExecutionStatus/_ROOT_Dataset_ArchiveExecutionStatus.qbl                                                               |    9 ++
 _Main/BL/Type_ArchiveExecutionStatus/_ROOT_Type_ArchiveExecutionStatus.qbl                                                                     |    9 ++
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgRequirementPreprocessing.def                                        |   16 ---
 _Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl                                                                                   |    9 +-
 16 files changed, 149 insertions(+), 36 deletions(-)

diff --git a/_Main/BL/Dataset_ArchiveExecutionStatus/_ROOT_Dataset_ArchiveExecutionStatus.qbl b/_Main/BL/Dataset_ArchiveExecutionStatus/_ROOT_Dataset_ArchiveExecutionStatus.qbl
new file mode 100644
index 0000000..7dee537
--- /dev/null
+++ b/_Main/BL/Dataset_ArchiveExecutionStatus/_ROOT_Dataset_ArchiveExecutionStatus.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Dataset ArchiveExecutionStatus
+{
+  #keys: '2[413988.0.1210041499][413988.0.1210041498]'
+  DefaultMDSName: 'ArchiveExecutionStatus'
+  InstanceType: ArchiveExecutionStatus
+}
diff --git a/_Main/BL/Relations/Relation_RequirementImportExecutionStatus_ArchiveExecutionStatus_ArchiveExec.qbl b/_Main/BL/Relations/Relation_RequirementImportExecutionStatus_ArchiveExecutionStatus_ArchiveExec.qbl
new file mode 100644
index 0000000..5fc73cd
--- /dev/null
+++ b/_Main/BL/Relations/Relation_RequirementImportExecutionStatus_ArchiveExecutionStatus_ArchiveExec.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation RequirementImportExecutionStatus_ArchiveExecutionStatus_ArchiveExecutionStatus_RequirementImportExecutionStatus
+{
+  #keys: '1[413988.0.1210041505]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide ArchiveExecutionStatus
+  {
+    #keys: '3[413988.0.1210041507][413988.0.1210041506][413988.0.1210041508]'
+    Cardinality: '0to1'
+    ObjectDefinition: RequirementImportExecutionStatus
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide RequirementImportExecutionStatus
+  {
+    #keys: '3[413988.0.1210041510][413988.0.1210041509][413988.0.1210041511]'
+    Cardinality: '1toN'
+    ObjectDefinition: ArchiveExecutionStatus
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_RequirementImportExecutionStatus_Archive_Archive_RequirementImportE.qbl b/_Main/BL/Relations/Relation_RequirementImportExecutionStatus_Archive_Archive_RequirementImportE.qbl
deleted file mode 100644
index 6e283ed..0000000
--- a/_Main/BL/Relations/Relation_RequirementImportExecutionStatus_Archive_Archive_RequirementImportE.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation RequirementImportExecutionStatus_Archive_Archive_RequirementImportExecutionStatus
-{
-  #keys: '1[414996.0.382770175]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide Archive
-  {
-    #keys: '3[414996.0.382770177][414996.0.382770176][414996.0.382770178]'
-    Cardinality: '0to1'
-    ObjectDefinition: RequirementImportExecutionStatus
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide RequirementImportExecutionStatus
-  {
-    #keys: '3[414996.0.382770180][414996.0.382770179][414996.0.382770181]'
-    Cardinality: '1toN'
-    ObjectDefinition: Archive
-    OwningSide: 'Owned'
-  }
-}
diff --git a/_Main/BL/Type_Archive/StaticMethod_HandlePR.qbl b/_Main/BL/Type_Archive/StaticMethod_HandlePR.qbl
index f14945f..4744b67 100644
--- a/_Main/BL/Type_Archive/StaticMethod_HandlePR.qbl
+++ b/_Main/BL/Type_Archive/StaticMethod_HandlePR.qbl
@@ -25,7 +25,11 @@
     Archive::WriteTempFile( pathPR, prBinaryValue );
     
     info( json );
-    
+    for ( i := 0; i < 10000; i++ ) {
+      for ( j := 0; j < 20000; j++ ) {
+        info( i + j ); 
+      } 
+    }
     // 璋冪敤鎺ュ彛
     url := "/PR/Import";
     
diff --git a/_Main/BL/Type_Archive/StaticMethod_OnException.qbl b/_Main/BL/Type_Archive/StaticMethod_OnException.qbl
new file mode 100644
index 0000000..061db6c
--- /dev/null
+++ b/_Main/BL/Type_Archive/StaticMethod_OnException.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod OnException (
+  Exception e,
+  ArchiveExecutionStatus archiveExecutionStatus,
+  String userName
+)
+{
+  TextBody:
+  [*
+    archiveExecutionStatus.RequirementImportExecutionStatus( relnew, 
+                                                             ExecutionStatus      := "Complete",
+                                                             ExecutionUserName    := userName,
+                                                             ExecutionRespMessage := e.Message(),
+                                                             ExecutionIsSuccess   := false );
+  *]
+}
diff --git a/_Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl b/_Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl
index 3fca737..f482917 100644
--- a/_Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl
+++ b/_Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl
@@ -2,6 +2,7 @@
 #parent: #root
 StaticMethod RequirementProcessing (
   Archive archive,
+  ArchiveExecutionStatus archiveExecutionStatus,
   MacroPlan macroPlan,
   String userName,
   String prFileName,
@@ -28,12 +29,12 @@
     OS::CreateDirectory( filePath );
     
     // 鍒涘缓鎵ц鐘舵��
-    archive.RequirementImportExecutionStatus( relnew, 
-                                              ExecutionStatus    := "InProgress",
-                                              ExecutionUserName  := userName );
+    archiveExecutionStatus.RequirementImportExecutionStatus( relnew, 
+                                                             ExecutionStatus    := "InProgress",
+                                                             ExecutionUserName  := userName );
     
     if ( prBinaryValue.Size() > 0 ) {
-      archive -> Archive::HandlePR( macroPlan, userName, prFileName, prBinaryValue, isPRArchive, filePath );
+      archive -> Archive::HandlePR( macroPlan, userName, prFileName, prBinaryValue, isPRArchive, filePath ) ->Archive::Success() -> Exception() -> Archive::OnException( archiveExecutionStatus, userName );
     } else if ( ppBinaryValue.Size() > 0 ) {
       Archive::HandlePP( archive, macroPlan, userName, ppFileName, ppBinaryValue, isPPArchive, filePath );
     } else if ( budgetBinaryValue.Size() > 0 ) {
diff --git a/_Main/BL/Type_Archive/StaticMethod_Success.qbl b/_Main/BL/Type_Archive/StaticMethod_Success.qbl
new file mode 100644
index 0000000..5897825
--- /dev/null
+++ b/_Main/BL/Type_Archive/StaticMethod_Success.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Success
+{
+  TextBody:
+  [*
+    // lihongji May-25-2024 (created)
+  *]
+}
diff --git a/_Main/BL/Type_ArchiveExecutionStatus/StaticMethod_OnServerStartup.qbl b/_Main/BL/Type_ArchiveExecutionStatus/StaticMethod_OnServerStartup.qbl
new file mode 100644
index 0000000..a52baa6
--- /dev/null
+++ b/_Main/BL/Type_ArchiveExecutionStatus/StaticMethod_OnServerStartup.qbl
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod OnServerStartup
+{
+  TextBody:
+  [*
+    // lihongji May-15-2024 (created)
+    folder := DomainModel::Domain().MDSFolderDefinitions().FindFolder( "/root" );
+    
+    datasetName := typeof( ArchiveExecutionStatus ).Name();
+    
+    oinfo := MDSEditor::Editor().ObjectInfos( datasetName, folder.FolderID(), datasetName );
+    
+    o := select( oinfo, Elements, o, not o.IsLoaded() );
+    emptydataset := isnull( o );
+    
+    if ( emptydataset ) {
+      MDSArchiveExecutionStatus::CreateMDS( datasetName, DMF_Utility::StorageState_MemoryOnly() );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_ArchiveExecutionStatus/_ROOT_Type_ArchiveExecutionStatus.qbl b/_Main/BL/Type_ArchiveExecutionStatus/_ROOT_Type_ArchiveExecutionStatus.qbl
new file mode 100644
index 0000000..2747db3
--- /dev/null
+++ b/_Main/BL/Type_ArchiveExecutionStatus/_ROOT_Type_ArchiveExecutionStatus.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ArchiveExecutionStatus
+{
+  #keys: '5[413988.0.1210041495][413988.0.1210041493][0.0.0][413988.0.1210041494][413988.0.1210041496]'
+  BaseType: Object
+  StructuredName: 'ArchiveExecutionStatuss'
+}
diff --git a/_Main/BL/Type_DMF_CustomLogic/Method_OnFinished.qbl b/_Main/BL/Type_DMF_CustomLogic/Method_OnFinished.qbl
index 5202502..60920c4 100644
--- a/_Main/BL/Type_DMF_CustomLogic/Method_OnFinished.qbl
+++ b/_Main/BL/Type_DMF_CustomLogic/Method_OnFinished.qbl
@@ -15,6 +15,9 @@
     // 鍒涘缓瀛樻。鏁版嵁闆�
     Archive::OnServerStartup();
     
+    // 鍒涘缓瀛樻。鐘舵�佹暟鎹泦
+    ArchiveExecutionStatus::OnServerStartup();
+    
     // Create MPDomainHandler
     MPDomainHandler::OnServerStartup();
     
diff --git a/_Main/BL/Type_RequirementImportExecutionStatus/Attribute_ExecutionIsSuccess.qbl b/_Main/BL/Type_RequirementImportExecutionStatus/Attribute_ExecutionIsSuccess.qbl
new file mode 100644
index 0000000..5aca29a
--- /dev/null
+++ b/_Main/BL/Type_RequirementImportExecutionStatus/Attribute_ExecutionIsSuccess.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ExecutionIsSuccess
+{
+  #keys: '3[413988.0.1207255621][413988.0.1207255620][413988.0.1207255622]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_RequirementImportExecutionStatus/Method_Filter.qbl b/_Main/BL/Type_RequirementImportExecutionStatus/Method_Filter.qbl
new file mode 100644
index 0000000..d440f2f
--- /dev/null
+++ b/_Main/BL/Type_RequirementImportExecutionStatus/Method_Filter.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Method Filter (
+  String userName
+) declarative remote as Boolean
+{
+  TextBody: 'return this.ExecutionUserName() = userName;'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgRequirementPreprocessing.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgRequirementPreprocessing.def
index 75c409e..93f5269 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgRequirementPreprocessing.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgRequirementPreprocessing.def
@@ -44,10 +44,8 @@
           BaseType: 'WebDataExtractor'
           Properties:
           [
-            DataType: 'Archive'
-            FilterArguments: 'userName:QLibMacroPlannerWebUI::ApplicationMacroPlanner.ActionBarMacroPlanner.dhUserName'
-            FixedFilter: 'object.ExecutionUserName() = userName'
-            Source: 'Archive'
+            DataType: 'ArchiveExecutionStatus'
+            Source: 'ArchiveExecutionStatus'
             Taborder: 0
             Transformation: 'RequirementImportExecutionStatus'
           ]
@@ -56,16 +54,6 @@
       Properties:
       [
         Taborder: 2
-      ]
-    }
-    Component dhUserName
-    {
-      #keys: '[414996.0.387620508]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'String*'
-      Properties:
-      [
-        Taborder: 3
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_deRequirementImportExecuti.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_deRequirementImportExecuti.def
new file mode 100644
index 0000000..d6ab223
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_deRequirementImportExecuti.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: abgRequirementPreprocessing/deRequirementImportExecutionStatus
+Response OnCreated () id:Response_MacroPlanner_abgRequirementPreprocessing_deRequirementImportExecutionStatus_OnCreated
+{
+  #keys: '[413988.0.1211520534]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      this.FixedFilter( "object.Filter( '" + ApplicationMacroPlanner.GetUserName() + "' )" );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_dhRequirementImportExecuti.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_dhRequirementImportExecuti.def
index 2860d95..2c02609 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_dhRequirementImportExecuti.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_dhRequirementImportExecuti.def
@@ -10,7 +10,21 @@
     Body:
     [*
       if ( not isnull( this.Data() ) ) {
+        ries := this.Data();
         
+        info( "鎵ц鐢ㄦ埛锛�", this.Data().ExecutionUserName(), "    鎵ц鐘舵�侊細", this.Data().ExecutionUserName(), "    鎵ц娑堟伅锛�", this.Data().ExecutionRespMessage() );
+        
+        if ( ries.ExecutionIsSuccess() ) {
+          
+        } else {
+          if ( ries.ExecutionStatus() = "InProgress" ) {
+            bRequirementUpload.Image( "APPLICATION_STOP" );
+          } else if ( ries.ExecutionStatus() = "Complete" ) {
+            bRequirementUpload.Image( "FLASH" );
+          }
+        }
+        
+        this.Data().Delete();
       }
     *]
     GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_dhUserName_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_dhUserName_OnCreated.def
deleted file mode 100644
index f76bb67..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_dhUserName_OnCreated.def
+++ /dev/null
@@ -1,16 +0,0 @@
-Quintiq file version 2.0
-#parent: abgRequirementPreprocessing/dhUserName
-Response OnCreated () id:Response_MacroPlanner_abgRequirementPreprocessing_dhUserName_OnCreated
-{
-  #keys: '[414996.0.387620588]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  QuillAction
-  {
-    Body:
-    [*
-      this.Data( ApplicationMacroPlanner.GetUserName() );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Method_OnOK.def
index 43d9cf4..b2a892f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Method_OnOK.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Method_OnOK.def
@@ -7,7 +7,7 @@
   [*
     Form.ApplyChanges();
          
-    Archive::RequirementProcessing( Archive, MacroPlan, ApplicationMacroPlanner.GetUserName(), 
+    Archive::RequirementProcessing( Archive, ArchiveExecutionStatus, MacroPlan, ApplicationMacroPlanner.GetUserName(), 
                                     efPR.Text()                                                                          , guard( dhBinaryDataPR.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ), cPR.Checked(),
                                     efPP.Text()                                                                          , guard( dhBinaryDataPP.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ), cPP.Checked(),
                                     efBudget.Text()                                                                      , guard( dhBinaryDataBudget.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ), cBudget.Checked(),

--
Gitblit v1.9.3