From cd76160e1dcefe21c06b610bd4ef17928cbfba51 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期三, 04 九月 2024 18:37:48 +0800
Subject: [PATCH] 通过共用类解析binary

---
 /dev/null                                                                               |    8 --------
 _Main/BL/Relations/Relation_CustomerDemandIDS_MacroPlan_MacroPlan_CustomerDemandIDS.qbl |   23 +++++++++++++++++++++++
 _Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl                        |   15 +++++++++------
 _Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def        |    2 +-
 4 files changed, 33 insertions(+), 15 deletions(-)

diff --git a/_Main/BL/Relations/Relation_CustomerDemandIDS_InterfaceDataset_InterfaceDataset_CustomerDemandI.qbl b/_Main/BL/Relations/Relation_CustomerDemandIDS_InterfaceDataset_InterfaceDataset_CustomerDemandI.qbl
deleted file mode 100644
index 2818276..0000000
--- a/_Main/BL/Relations/Relation_CustomerDemandIDS_InterfaceDataset_InterfaceDataset_CustomerDemandI.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation CustomerDemandIDS_InterfaceDataset_InterfaceDataset_CustomerDemandIDS
-{
-  #keys: '1[415136.0.1109686108]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide InterfaceDataset
-  {
-    #keys: '3[415136.0.1109686110][415136.0.1109686109][415136.0.1109686111]'
-    Cardinality: '0to1'
-    ObjectDefinition: CustomerDemandIDS
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide CustomerDemandIDS
-  {
-    #keys: '3[415136.0.1109686113][415136.0.1109686112][415136.0.1109686114]'
-    Cardinality: '1toN'
-    ObjectDefinition: InterfaceDataset
-    OwningSide: 'Owned'
-  }
-}
diff --git a/_Main/BL/Relations/Relation_CustomerDemandIDS_MacroPlan_MacroPlan_CustomerDemandIDS.qbl b/_Main/BL/Relations/Relation_CustomerDemandIDS_MacroPlan_MacroPlan_CustomerDemandIDS.qbl
new file mode 100644
index 0000000..7bc0ffb
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CustomerDemandIDS_MacroPlan_MacroPlan_CustomerDemandIDS.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CustomerDemandIDS_MacroPlan_MacroPlan_CustomerDemandIDS
+{
+  #keys: '1[415136.0.1113700065]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[415136.0.1113700067][415136.0.1113700066][415136.0.1113700068]'
+    Cardinality: '0to1'
+    ObjectDefinition: CustomerDemandIDS
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide CustomerDemandIDS
+  {
+    #keys: '3[415136.0.1113700070][415136.0.1113700069][415136.0.1113700071]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/Method_SyncRows.qbl b/_Main/BL/Type_CustomerDemandIDS/Method_SyncRows.qbl
deleted file mode 100644
index 0106865..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/Method_SyncRows.qbl
+++ /dev/null
@@ -1,39 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Method SyncRows
-{
-  TextBody:
-  [*
-    totalRows := 0;
-    totalColumns := this.Column( relsize );
-    
-    if ( totalColumns > 0 ) {
-      randomCol := select( this, Column, tempFPC, true );
-      totalRows := randomCol.Cell( relsize );
-      
-      this.Row( relflush );
-      
-      cells := construct( CustomerDemandIDSCells );
-      traverse ( this, Column, fpc ) {
-        cells.Add( fpc.FirstCellInColumn() );
-      }
-      
-      for ( i := 0; i < totalRows; i++ ) {
-        assert( selectvalues( cells, Elements, c, true, c.Column().Index() ).ToString( "" ) = 
-                selectvalues( selectsortedset( cells, Elements, c, true, c.Column().Index() ), Elements, c, true, c.Column().Index() ).ToString( "" ),
-                "Assertion error in FrockDataTable::syncRows: Cells not sorted by column index" );
-        row := this.Row( relnew, RowNr := i );
-        
-        newCells := construct( CustomerDemandIDSCells );
-        
-        traverse ( cells, Elements, c ) {
-          row.Cell( relinsert, c );
-          
-          newCells.Add( c.NextCellInColumn() );
-        }
-        
-        cells := &newCells;
-      }
-    }
-  *]
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/StaticMethod_ReadStructure.qbl b/_Main/BL/Type_CustomerDemandIDS/StaticMethod_ReadStructure.qbl
deleted file mode 100644
index f0b4327..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/StaticMethod_ReadStructure.qbl
+++ /dev/null
@@ -1,33 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod ReadStructure (
-  BinaryValue binaryvalue,
-  InterfaceDataset owner
-)
-{
-  TextBody:
-  [*
-    // 鐢勫叞楦� Sep-3-2024 (created)
-    tableGroupHandle := TableGroupHandle::Create( 'IDS鍏ㄨ〃' );
-    tableGroupHandle := XLS::LoadTableGroupFromBinaryData( binaryvalue.AsBinaryData(), tableGroupHandle, true, true );
-    sheets := tableGroupHandle.TableNames();
-    
-    traverse ( sheets, Elements, sheetName ) {
-      tableHandle := tableGroupHandle.Table( sheetName );
-      tableXML := TableHandle::ExportXML( tableHandle );
-      
-    //  info( tableXML.AsQUILL() );
-      
-      CustomerDemandIDS::XMLFileImportCustomerDemandIDSXMLHeaders( tableXML );
-      xlstable := CustomerDemandIDS::XMLImportCustomerDemandIDSXML( tableXML );
-    
-      xlstable.SyncRows();
-    
-      xlstable.Name( sheetName );
-      owner.CustomerDemandIDS( relinsert, &xlstable ); 
-      
-      Transaction::Transaction().Propagate( attribute( CustomerDemandIDSColumn, Index ) );
-    
-    }
-  *]
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_Key.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_Key.qbl
deleted file mode 100644
index 4f408a0..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_Key.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-XMLElementId
-{
-  XMLAddressType { }
-  XMLID Key { }
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_QuintiqType.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_QuintiqType.qbl
deleted file mode 100644
index 7468757..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_QuintiqType.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-XMLElementId
-{
-  XMLID QuintiqType { }
-  XMLQualifierType { }
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_cell.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_cell.qbl
deleted file mode 100644
index c4fd297..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_cell.qbl
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-XMLObjectBase.ObjectDefinitions
-{
-  IdField: Key
-  ObjectTypeField: QuintiqType
-  TargetType: CustomerDemandIDSCell
-  XMLID cell { }
-  Attributes:
-  [
-    XMLAttribute
-    {
-      Attribute: Value
-      XMLID value { }
-    }
-  ]
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_column.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_column.qbl
deleted file mode 100644
index 4a97560..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_column.qbl
+++ /dev/null
@@ -1,27 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-XMLObjectBase.ObjectDefinitions
-{
-  IdField: Key
-  ObjectTypeField: QuintiqType
-  TargetType: CustomerDemandIDSColumn
-  XMLID column { }
-  Aggregates:
-  [
-    XMLAggregate
-    {
-      ElementDefinition: cell
-      GenerateOutput: false
-      Relation: Cell
-      XMLID Cell { }
-    }
-  ]
-  Attributes:
-  [
-    XMLAttribute
-    {
-      Attribute: Name
-      XMLID name { }
-    }
-  ]
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_table.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_table.qbl
deleted file mode 100644
index ebf311d..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_table.qbl
+++ /dev/null
@@ -1,27 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-XMLObjectBase.ObjectDefinitions
-{
-  IdField: Key
-  ObjectTypeField: QuintiqType
-  TargetType: CustomerDemandIDS
-  XMLID table { }
-  Aggregates:
-  [
-    XMLAggregate
-    {
-      ElementDefinition: column
-      GenerateOutput: false
-      Relation: Column
-      XMLID Column { }
-    }
-  ]
-  Attributes:
-  [
-    XMLAttribute
-    {
-      Attribute: Name
-      XMLID name { }
-    }
-  ]
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/_ROOT_XML_CustomerDemandIDSXML.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/_ROOT_XML_CustomerDemandIDSXML.qbl
deleted file mode 100644
index a0513a0..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/_ROOT_XML_CustomerDemandIDSXML.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: #root
-XML CustomerDemandIDSXML
-{
-  Direction: 'ImportExport'
-  Root: table
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_Key.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_Key.qbl
deleted file mode 100644
index 4f408a0..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_Key.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-XMLElementId
-{
-  XMLAddressType { }
-  XMLID Key { }
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_QuintiqType.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_QuintiqType.qbl
deleted file mode 100644
index 7468757..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_QuintiqType.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-XMLElementId
-{
-  XMLID QuintiqType { }
-  XMLQualifierType { }
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_column.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_column.qbl
deleted file mode 100644
index c3c96e9..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_column.qbl
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-XMLObjectBase.ObjectDefinitions
-{
-  IdField: Key
-  ObjectTypeField: QuintiqType
-  TargetType: CustomerDemandIDSColumn
-  XMLID column { }
-  Attributes:
-  [
-    XMLAttribute
-    {
-      Attribute: Name
-      XMLID name { }
-    }
-  ]
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_table.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_table.qbl
deleted file mode 100644
index ebf311d..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_table.qbl
+++ /dev/null
@@ -1,27 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-XMLObjectBase.ObjectDefinitions
-{
-  IdField: Key
-  ObjectTypeField: QuintiqType
-  TargetType: CustomerDemandIDS
-  XMLID table { }
-  Aggregates:
-  [
-    XMLAggregate
-    {
-      ElementDefinition: column
-      GenerateOutput: false
-      Relation: Column
-      XMLID Column { }
-    }
-  ]
-  Attributes:
-  [
-    XMLAttribute
-    {
-      Attribute: Name
-      XMLID name { }
-    }
-  ]
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/_ROOT_XML_CustomerDemandIDSXMLHeaders.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/_ROOT_XML_CustomerDemandIDSXMLHeaders.qbl
deleted file mode 100644
index 8c8b3e2..0000000
--- a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/_ROOT_XML_CustomerDemandIDSXMLHeaders.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: #root
-XML CustomerDemandIDSXMLHeaders
-{
-  Direction: 'ImportExport'
-  Root: table
-}
diff --git a/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl b/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
index 2139612..a9645b0 100644
--- a/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
+++ b/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
@@ -2,6 +2,7 @@
 #parent: #root
 StaticMethod GenerateData (
   const MacroPlan macroplan,
+  RecycleBin recycle,
   const Archive archive,
   InterfaceDataset interfaceDataset,
   String executor,
@@ -43,15 +44,16 @@
       loginfo.CustomerDemandPPAIDS( relinsert, cd );
     }
     binaryValue           := TemplateManager::GetIDSFullTable( archive, Date::ActualDate().Year() );
-    CustomerDemandIDS::ReadStructure( binaryValue, interfaceDataset );
-    productcolumn         := select( interfaceDataset, CustomerDemandIDS.Column, column, column.Index() = 1 );
+    source                := GeneralExcelImportAndExportDataSource::Upload( recycle, binaryValue, OS::TempPath() + "template.xlsx" );
+    source.ReadStructure();
+    //productcolumn         := select( recycle, ge.Column, column, column.Index() = 1 );
     cnv2 := StringToDate::StandardConverter();
     cnv2.SetCustomConversion();
     cnv2.CustomFormatString( "dd/MM/yyyy" );
-    traverse( interfaceDataset, CustomerDemandIDS.Row, row ){
-      product             := selectobject( row, Cell, cell, cell.Column() = productcolumn );
-      traverse( row, Cell, cell, cell.Column().Index() > 3 ){
-        period := cnv2.Convert( cell.Column().Name() );
+    traverse( recycle, GeneralExcelImportAndExportDataSource.GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataRow, row ){
+      product             := selectobject( row, GeneralExcelImportAndExportDataCell, cell, cell.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 1 );
+      traverse( row, GeneralExcelImportAndExportDataCell, cell, cell.GeneralExcelImportAndExportDataColumn().ColumnIndex() > 3 ){
+        period := cnv2.Convert( cell.GeneralExcelImportAndExportDataColumn().Name() );
         cd                  :=interfaceDataset.CustomerDemandPPAIDS( relnew, Product           := product.Value()
                                                                      , DemandDate              := period
                                                                      , DemandQty               := [Number]cell.Value()
@@ -62,6 +64,7 @@
         loginfo.CustomerDemandPPAIDS( relinsert, cd );
       }
     }
+    source.Delete();
     loginfo.TotalRow( loginfo.CustomerDemandPPAIDS( relsize ) );
   *]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def
index a9043c1..b0cee42 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def
@@ -11,7 +11,7 @@
     currentuser  := QuintiqUser::CurrentUser().DisplayName();
     isactive     := ifexpr( rbgVersionFlag.BoundValue() = "true", true, false );
     if( efInterfacename.Text() = Translations::InterfaceDataset_CustomerDemandPPAIDS_Name() ){//瀹㈡埛闇�姹�
-      CustomerDemandPPAIDS::GenerateData( MacroPlan, InterfaceDataset, currentuser, isactive );
+      CustomerDemandPPAIDS::GenerateData( MacroPlan, RecycleBin, Archive, InterfaceDataset, currentuser, isactive );
     }
     if( efInterfacename.Text() = Translations::InterfaceDataset_AssemblyOnlinePlanPPPSPush_Name()){//瑁呴厤涓婄嚎
       AssemblyOnlinePlanPPPSPush::GenerateData( MacroPlan, InterfaceDataset, currentuser, isactive );

--
Gitblit v1.9.3