From 0e58d57f740adedf9590a32335baeec83cfe7969 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期五, 06 九月 2024 17:45:15 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg

---
 _Main/BL/Relations/Relation_ActualDailyProductionData_Archive_Archive_ActualDailyProductionData.qbl |   23 +++++++
 _Main/BL/Type_ActualDailyProductionReport/Attribute_Fac.qbl                                         |    8 ++
 _Main/BL/Type_ActualDailyProductionReport/Attribute_LineName.qbl                                    |    8 ++
 _Main/BL/Type_ActualDailyProductionReport/Attribute_ProductNo.qbl                                   |    8 ++
 _Main/BL/Dataset_InterfaceDataset/Daemon_ActualDailyProductionInterface.qbl                         |   16 +++++
 _Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftCode.qbl                                   |    8 ++
 /dev/null                                                                                           |    8 --
 _Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl                              |   22 ++----
 _Main/BL/Type_ActualDailyProductionReport/Attribute_ProductionDate.qbl                              |    8 ++
 _Main/BL/Type_OfflinePlanTable/Method_Comparison.qbl                                                |    9 +-
 _Main/BL/Type_ActualDailyProductionReport/StaticMethod_ParseData.qbl                                |   37 ++++++++++++
 _Main/BL/Type_ActualDailyProductionReport/Attribute_ActualOut.qbl                                   |    8 ++
 _Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftName.qbl                                   |    8 ++
 13 files changed, 145 insertions(+), 26 deletions(-)

diff --git a/_Main/BL/Dataset_InterfaceDataset/Daemon_ActualDailyProductionInterface.qbl b/_Main/BL/Dataset_InterfaceDataset/Daemon_ActualDailyProductionInterface.qbl
new file mode 100644
index 0000000..5585019
--- /dev/null
+++ b/_Main/BL/Dataset_InterfaceDataset/Daemon_ActualDailyProductionInterface.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Daemon ActualDailyProductionInterface
+{
+  Frequency: P1DT0H0M0S
+  Priority: 'Default'
+  StartDate: 2020-01-01
+  StartTimeOfDay: P0DT6H0M0S
+  Text:
+  [*
+    options := DatasetFindOptions::Construct( 'InterfaceDataset' ).IncludeOffline( true ); //to load we must search offline datasets.
+    mdskey := DatasetController::FindUnique( options );
+    
+    MDSInterfaceDataset::Root( mdskey ) -> ActualDailyProductionData::Synchronize( "Administrator" );
+  *]
+}
diff --git a/_Main/BL/Relations/Relation_ActualDailyProductionData_Archive_Archive_ActualDailyProductionData.qbl b/_Main/BL/Relations/Relation_ActualDailyProductionData_Archive_Archive_ActualDailyProductionData.qbl
new file mode 100644
index 0000000..6c71a7c
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ActualDailyProductionData_Archive_Archive_ActualDailyProductionData.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ActualDailyProductionData_Archive_Archive_ActualDailyProductionData
+{
+  #keys: '1[414996.1.72461289]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Archive
+  {
+    #keys: '3[414996.1.72461291][414996.1.72461290][414996.1.72461292]'
+    Cardinality: '0to1'
+    ObjectDefinition: ActualDailyProductionData
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide ActualDailyProductionData
+  {
+    #keys: '3[414996.1.72461294][414996.1.72461293][414996.1.72461295]'
+    Cardinality: '1toN'
+    ObjectDefinition: Archive
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_ActualDailyProductionData_MacroPlan_MacroPlan_ActualDailyProduction.qbl b/_Main/BL/Relations/Relation_ActualDailyProductionData_MacroPlan_MacroPlan_ActualDailyProduction.qbl
deleted file mode 100644
index 02387dc..0000000
--- a/_Main/BL/Relations/Relation_ActualDailyProductionData_MacroPlan_MacroPlan_ActualDailyProduction.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation ActualDailyProductionData_MacroPlan_MacroPlan_ActualDailyProductionData
-{
-  #keys: '1[412672.1.61744699]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide MacroPlan
-  {
-    #keys: '3[412672.1.61744701][412672.1.61744700][412672.1.61744702]'
-    Cardinality: '0to1'
-    ObjectDefinition: ActualDailyProductionData
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide ActualDailyProductionData
-  {
-    #keys: '3[412672.1.61744704][412672.1.61744703][412672.1.61744705]'
-    Cardinality: '1toN'
-    ObjectDefinition: MacroPlan
-    OwningSide: 'Owned'
-  }
-}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ActualOut.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ActualOut.qbl
new file mode 100644
index 0000000..9145f87
--- /dev/null
+++ b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ActualOut.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ActualOut
+{
+  #keys: '3[414996.1.72461245][414996.1.72461244][414996.1.72461246]'
+  Description: '瀹為檯浜у嚭鏁伴噺'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_Date.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_Date.qbl
deleted file mode 100644
index 10b9ec4..0000000
--- a/_Main/BL/Type_ActualDailyProductionReport/Attribute_Date.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Date
-{
-  #keys: '3[412672.1.61744627][412672.1.61744626][412672.1.61744628]'
-  Description: '鏃ユ湡'
-  ValueType: Date
-}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_Fac.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_Fac.qbl
new file mode 100644
index 0000000..d7b4a46
--- /dev/null
+++ b/_Main/BL/Type_ActualDailyProductionReport/Attribute_Fac.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Fac
+{
+  #keys: '3[414996.1.72461215][414996.1.72461214][414996.1.72461216]'
+  Description: '宸ュ巶绠�鍐�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_LineName.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_LineName.qbl
new file mode 100644
index 0000000..7c9ce3f
--- /dev/null
+++ b/_Main/BL/Type_ActualDailyProductionReport/Attribute_LineName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineName
+{
+  #keys: '3[414996.1.72461225][414996.1.72461224][414996.1.72461226]'
+  Description: '浜х嚎鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_Product.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_Product.qbl
deleted file mode 100644
index 0ce86d2..0000000
--- a/_Main/BL/Type_ActualDailyProductionReport/Attribute_Product.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Product
-{
-  #keys: '3[412672.1.61744620][412672.1.61744619][412672.1.61744621]'
-  Description: '鐗╂枡鍙�'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductLine.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductLine.qbl
deleted file mode 100644
index 9424897..0000000
--- a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductLine.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute ProductLine
-{
-  #keys: '3[412672.1.61744610][412672.1.61744609][412672.1.61744611]'
-  Description: '浜х嚎'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductNo.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductNo.qbl
new file mode 100644
index 0000000..3c4948b
--- /dev/null
+++ b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductNo.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductNo
+{
+  #keys: '3[414996.1.72461258][414996.1.72461257][414996.1.72461259]'
+  Description: '浜у搧ID'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductionDate.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductionDate.qbl
new file mode 100644
index 0000000..6af3fe3
--- /dev/null
+++ b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductionDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductionDate
+{
+  #keys: '3[414996.1.72461195][414996.1.72461194][414996.1.72461196]'
+  Description: '鐢熶骇鏃ユ湡'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductionVolume.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductionVolume.qbl
deleted file mode 100644
index 9c9a7fa..0000000
--- a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductionVolume.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute ProductionVolume
-{
-  #keys: '3[412672.1.61744637][412672.1.61744636][412672.1.61744638]'
-  Description: '瀵瑰簲鏃ユ湡鐨勫疄闄呯敓浜ф暟閲�'
-  ValueType: Real
-}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_Shift.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_Shift.qbl
deleted file mode 100644
index 84de969..0000000
--- a/_Main/BL/Type_ActualDailyProductionReport/Attribute_Shift.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Shift
-{
-  #keys: '3[412672.1.61744647][412672.1.61744646][412672.1.61744648]'
-  Description: '瀵瑰簲鏃ユ湡鐨勫疄闄呯敓浜х彮娆�'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftCode.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftCode.qbl
new file mode 100644
index 0000000..6d1ed76
--- /dev/null
+++ b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftCode
+{
+  #keys: '3[414996.1.72461205][414996.1.72461204][414996.1.72461206]'
+  Description: '鐝鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftName.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftName.qbl
new file mode 100644
index 0000000..ce43053
--- /dev/null
+++ b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftName
+{
+  #keys: '3[414996.1.72461235][414996.1.72461234][414996.1.72461236]'
+  Description: '浜х嚎鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftProductionVolume.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftProductionVolume.qbl
deleted file mode 100644
index f4cffb9..0000000
--- a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftProductionVolume.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute ShiftProductionVolume
-{
-  #keys: '3[412672.1.61744657][412672.1.61744656][412672.1.61744658]'
-  Description: '瀵瑰簲鐝鐨勫疄闄呯敓浜ф暟閲�'
-  ValueType: Real
-}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftSequence.qbl b/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftSequence.qbl
deleted file mode 100644
index 77091ca..0000000
--- a/_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftSequence.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute ShiftSequence
-{
-  #keys: '3[412672.1.61744667][412672.1.61744666][412672.1.61744668]'
-  Description: '鐝椤哄簭'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/StaticMethod_ParseData.qbl b/_Main/BL/Type_ActualDailyProductionReport/StaticMethod_ParseData.qbl
new file mode 100644
index 0000000..40578cb
--- /dev/null
+++ b/_Main/BL/Type_ActualDailyProductionReport/StaticMethod_ParseData.qbl
@@ -0,0 +1,37 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ParseData (
+  Archive owner,
+  JSON data
+)
+{
+  TextBody:
+  [*
+    // Akari Sep-6-2024 (created)
+    if( not isnull( data ) ){
+      cnv2 := StringToDate::StandardConverter();
+      cnv2.SetCustomConversion();
+      cnv2.CustomFormatString( 'yyyy-MM-dd' );
+      
+      for( i := 0; i < data.Size(); i++ ){
+        object := data.Get( i );
+        productDate := object.Get( "productiondate" ).GetString();
+        shiftCode := object.Get( "shift_code" ).GetString();
+        fac := object.Get( "fac" ).GetString();
+        lineName := object.Get( "line_name" ).GetString();
+        shiftName := object.Get( "shift_name" ).GetString();
+        actualOut := [Real]object.Get( "actual_out" ).GetString();
+        productNo := object.Get( "product_no" ).GetString();
+        
+        owner.ActualDailyProductionData( relnew,
+                                         ProductionDate := cnv2.Convert( productDate ),
+                                         ShiftCode := shiftCode,
+                                         Fac := fac,
+                                         LineName := lineName,
+                                         ShiftName := shiftName,
+                                         ActualOut := actualOut,
+                                         ProductNo := productNo );
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl b/_Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl
index 4f6cfa9..8942535 100644
--- a/_Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl
+++ b/_Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl
@@ -1,31 +1,25 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod Synchronize (
-  MacroPlan owner,
-  InterfaceDataset interfaceDataset
+  InterfaceDataset interfaceDataset,
+  String executor
 )
 {
   TextBody:
   [*
     // rislai Jul-23-2024 (created)
     date    := Date::ActualDate() - 1;
-    loginfo := interfaceDataset.InterfaceLoginfo( relnew, ExecuteUser := QuintiqUser::CurrentUser().ShortName()
+    loginfo := interfaceDataset.InterfaceLoginfo( relnew, ExecuteUser := executor
                                        , Name := Translations::InterfaceDataset_ActualDailyProductionData_Name()
                                        , InterfaceDateTime := DateTime::ActualTime()
                                        , Message := '鐢熶骇瀹為檯鏁版嵁'
                                        , RequestBody := ActualDailyProductionData::GetRequestBody( date ) );
     
     data := InterfaceLoginfo::CallInterface( interfaceDataset,loginfo );
-    if( not isnull( data ) ){
-      cnv1 := StringToDateTime::StandardConverter();
-      cnv1.SetCustomConversion();
-      cnv1.CustomFormatString( 'yyyy-MM-dd HH:mm:ss' );
-      
-      cnv2 := StringToDate::StandardConverter();
-      cnv2.SetCustomConversion();
-      cnv2.CustomFormatString( 'yyyy-MM-dd' );
-      
-      info( data.AsString() );
-    }
+    
+    options := DatasetFindOptions::Construct( 'Archive' ).IncludeOffline( true ); //to load we must search offline datasets.
+    mdskey := DatasetController::FindUnique( options );
+    
+    MDSArchive::Root( mdskey ) -> ActualDailyProductionData::ParseData( data );
   *]
 }
diff --git a/_Main/BL/Type_OfflinePlanTable/Method_Comparison.qbl b/_Main/BL/Type_OfflinePlanTable/Method_Comparison.qbl
index 9434ec7..6c22eaa 100644
--- a/_Main/BL/Type_OfflinePlanTable/Method_Comparison.qbl
+++ b/_Main/BL/Type_OfflinePlanTable/Method_Comparison.qbl
@@ -1,7 +1,8 @@
 Quintiq file version 2.0
 #parent: #root
 Method Comparison (
-  RecycleBin recycleBin
+  RecycleBin recycleBin,
+  const Archive archive
 ) as LocalTable
 {
   TextBody:
@@ -10,11 +11,11 @@
     macroPlan := this.MacroPlan();
     table := recycleBin.LocalTable( relnew,Name := "浜ч噺瀵规瘮鎶ヨ〃");
     
-    actualDailyProductionDatas := selectset( macroPlan,ActualDailyProductionData,data,true );
+    actualDailyProductionDatas := selectset( archive,ActualDailyProductionData,data,true );
     actualDailyProductionDataIndexTree := NamedValueTree::Create();
     for( i := 0; i< actualDailyProductionDatas.Size(); i++ ){
       actualDailyProductionData := actualDailyProductionDatas.Element( i );
-      actualDailyProductionDataKey := actualDailyProductionData.Product() + actualDailyProductionData.Date().AsQUILL();
+      actualDailyProductionDataKey := actualDailyProductionData.ProductNo() + actualDailyProductionData.ProductionDate().AsQUILL();
       actualDailyProductionDataHandle := actualDailyProductionDataIndexTree.GetHandle( actualDailyProductionDataKey );
       actualDailyProductionDataIndexTree.Root().AddChild( actualDailyProductionDataHandle,i ); 
     }
@@ -43,7 +44,7 @@
           actualDailyProductionVolume := 0.0;
           if( not isnull( actualDailyProductionDataIndex )){
             actualDailyProductionData := actualDailyProductionDatas.Element( actualDailyProductionDataIndex.GetValueAsNumber() );
-            actualDailyProductionVolume := actualDailyProductionData.ProductionVolume();
+            actualDailyProductionVolume := actualDailyProductionData.ActualOut();
           }
           localColumn := localColumns.Element( localColumnIndex.GetValueAsNumber() );
           localRow.LocalCell( relnew,LocalCell_ProductionComparison ,LocalColumn := localColumn,

--
Gitblit v1.9.3