From ba839054c67bfd5b456494a1505e104a0d59d630 Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期一, 11 十一月 2024 10:28:25 +0800
Subject: [PATCH] 添加班次计划下发方法

---
 /dev/null                                                                                           |    8 ----
 _Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl                                           |   44 ++++++++++++++-------
 _Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl                                     |    1 
 _Main/BL/Type_DispatchShiftPlan/Attribute_ShiftQty.qbl                                              |    7 +++
 _Main/BL/Relations/Relation_DispatchShiftPlan_InterfaceLoginfo_InterfaceLoginfo_DispatchShiftPl.qbl |   23 +++++++++++
 _Main/BL/Type_DispatchShiftPlan/StaticMethod_Publish.qbl                                            |   29 ++++++++++++++
 6 files changed, 89 insertions(+), 23 deletions(-)

diff --git a/_Main/BL/EDI/Broker_RB_DispatchShiftPlanBroker.qbl b/_Main/BL/EDI/Broker_RB_DispatchShiftPlanBroker.qbl
deleted file mode 100644
index 3e006d1..0000000
--- a/_Main/BL/EDI/Broker_RB_DispatchShiftPlanBroker.qbl
+++ /dev/null
@@ -1,119 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-EDIBroker RB_DispatchShiftPlanBroker
-{
-  MDSDefinition: RecycleBin
-  TimeZone: 'ACT'
-  UseOSTimeZone: false
-  EDIModelLink.Source DispatchShiftPlanSource
-  {
-    EDIMLTable DispatchShiftPlan
-    {
-      TargetType: DispatchShiftPlan
-      EDIMLColumn Fac { Attribute: Fac ValueType: String }
-      EDIMLColumn FactoryName { Attribute: FactoryName ValueType: String }
-      EDIMLColumn ID { Attribute: ID ValueType: String }
-      EDIMLColumn InterfaceTime { Attribute: InterfaceTime ValueType: DateTime }
-      EDIMLColumn ProductLine { Attribute: ProductLine ValueType: String }
-      EDIMLColumn ShiftDate { Attribute: ShiftDate ValueType: Date }
-      EDIMLColumn Tips { Attribute: Tips ValueType: String }
-      EDIMLColumn VersionFlag { Attribute: VersionFlag ValueType: String }
-      EDIMLColumn VersionName { Attribute: VersionName ValueType: String }
-    }
-  }
-  EDIODBCLink.Destination DispatchShiftPlanDestination
-  {
-    DataIntegrityStrategy: 'Disabled'
-    SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.vwed'
-    EDIODBCLinkTable A_DispatchShiftPlan
-    {
-      MayCreateTable: true
-      MayDeleteRow: true
-      MayDropTable: true
-      MayFlushTable: true
-      MayInsertRow: true
-      Parameters: '/owner="dbo"'
-      PrimaryKeyColumns: ID
-      RecordModificationHintStrategy: 'None'
-      EDIODBCLinkColumn Fac
-      {
-        MayUpdateColumn: true
-        ValueType: String
-      }
-      EDIODBCLinkColumn FactoryName
-      {
-        MayUpdateColumn: true
-        ValueType: String
-      }
-      EDIODBCLinkColumn ID
-      {
-        MayUpdateColumn: true
-        ValueType: String
-      }
-      EDIODBCLinkColumn InterfaceTime
-      {
-        MayUpdateColumn: true
-        ValueType: DateTime
-      }
-      EDIODBCLinkColumn ProductLine
-      {
-        MayUpdateColumn: true
-        ValueType: String
-      }
-      EDIODBCLinkColumn ShiftDate
-      {
-        MayUpdateColumn: true
-        ValueType: DateTime
-      }
-      EDIODBCLinkColumn Tips
-      {
-        MayUpdateColumn: true
-        ValueType: String
-      }
-      EDIODBCLinkColumn VersionFlag
-      {
-        MayUpdateColumn: true
-        ValueType: String
-      }
-      EDIODBCLinkColumn VersionName
-      {
-        MayUpdateColumn: true
-        ValueType: String
-      }
-    }
-  }
-  EDITransformation.Transformation DispatchShiftPlanTransformation
-  {
-    EDITableTransformation
-    {
-      InputTable: DispatchShiftPlan
-      OutputTable: A_DispatchShiftPlan
-      EDIColumnMatch { InputColumn: Fac OutputColumn: Fac }
-      EDIColumnMatch { InputColumn: FactoryName OutputColumn: FactoryName }
-      EDIColumnMatch { InputColumn: ID OutputColumn: ID }
-      EDIColumnMatch { InputColumn: InterfaceTime OutputColumn: InterfaceTime }
-      EDIColumnMatch { InputColumn: ProductLine OutputColumn: ProductLine }
-      EDIColumnMatch
-      {
-        InputColumn: ShiftDate
-        OutputColumn: ShiftDate
-        Converter
-        {
-          XMLDefinition:
-          [*
-            <?xml version="1.0" encoding="UTF-16"?>
-            <DateToDateTime xmlns="http://www.quintiq.com/GEB/DateToDateTime" Key="@1">
-              <IsStandard>true</IsStandard>
-              <IsISO>false</IsISO>
-              <IsCustom>false</IsCustom>
-              <ConversionType>0</ConversionType>
-            </DateToDateTime>
-          *]
-        }
-      }
-      EDIColumnMatch { InputColumn: Tips OutputColumn: Tips }
-      EDIColumnMatch { InputColumn: VersionFlag OutputColumn: VersionFlag }
-      EDIColumnMatch { InputColumn: VersionName OutputColumn: VersionName }
-    }
-  }
-}
diff --git a/_Main/BL/Relations/Relation_DispatchShiftPlan_Archive_Archive_DispatchShiftPlan.qbl b/_Main/BL/Relations/Relation_DispatchShiftPlan_Archive_Archive_DispatchShiftPlan.qbl
deleted file mode 100644
index f45c374..0000000
--- a/_Main/BL/Relations/Relation_DispatchShiftPlan_Archive_Archive_DispatchShiftPlan.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation DispatchShiftPlan_Archive_Archive_DispatchShiftPlan
-{
-  #keys: '1[414996.1.121982603]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide Archive
-  {
-    #keys: '3[414996.1.121982605][414996.1.121982604][414996.1.121982606]'
-    Cardinality: '0to1'
-    ObjectDefinition: DispatchShiftPlan
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide DispatchShiftPlan
-  {
-    #keys: '3[414996.1.121982608][414996.1.121982607][414996.1.121982609]'
-    Cardinality: '1toN'
-    ObjectDefinition: Archive
-    OwningSide: 'Owned'
-  }
-}
diff --git a/_Main/BL/Relations/Relation_DispatchShiftPlan_InterfaceLoginfo_InterfaceLoginfo_DispatchShiftPl.qbl b/_Main/BL/Relations/Relation_DispatchShiftPlan_InterfaceLoginfo_InterfaceLoginfo_DispatchShiftPl.qbl
new file mode 100644
index 0000000..7938196
--- /dev/null
+++ b/_Main/BL/Relations/Relation_DispatchShiftPlan_InterfaceLoginfo_InterfaceLoginfo_DispatchShiftPl.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation DispatchShiftPlan_InterfaceLoginfo_InterfaceLoginfo_DispatchShiftPlan
+{
+  #keys: '1[414996.1.203950081]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide InterfaceLoginfo
+  {
+    #keys: '3[414996.1.203950083][414996.1.203950082][414996.1.203950084]'
+    Cardinality: '0to1'
+    ObjectDefinition: DispatchShiftPlan
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide DispatchShiftPlan
+  {
+    #keys: '3[414996.1.203950086][414996.1.203950085][414996.1.203950087]'
+    Cardinality: '1toN'
+    ObjectDefinition: InterfaceLoginfo
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Attribute_ShiftQty.qbl b/_Main/BL/Type_DispatchShiftPlan/Attribute_ShiftQty.qbl
new file mode 100644
index 0000000..3f1cccd
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/Attribute_ShiftQty.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftQty
+{
+  #keys: '3[414996.1.206760016][414996.1.206760015][414996.1.206760017]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Attribute_VersionFlag.qbl b/_Main/BL/Type_DispatchShiftPlan/Attribute_VersionFlag.qbl
deleted file mode 100644
index 047acd8..0000000
--- a/_Main/BL/Type_DispatchShiftPlan/Attribute_VersionFlag.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute VersionFlag
-{
-  #keys: '3[414996.1.17706927][414996.1.17706926][414996.1.17706928]'
-  Description: '鐗堟湰鏍囪瘑'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
index 5d69146..fd802d5 100644
--- a/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
+++ b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
@@ -1,18 +1,33 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod Dispatch (
+  InterfaceDataset interfaceDataset,
   const MacroPlan macroPlan,
-  Archive owner,
-  String versionFlag
+  String executor
 )
 {
   TextBody:
   [*
     // Akari Aug-21-2024 (created)
-    // owner.DispatchShiftPlan( relflush );
-    // owner.RB_DispatchShiftPlanBroker().Source().FlatQuery( "truncate table A_DispatchShiftPlan" );
+    now := DateTime::Now();
     
-    dispatchShiftPlans := selectset( owner,DispatchShiftPlan,dispatchShiftPlan,true );
+    interfaceLoginfo := maxselect( interfaceDataset,InterfaceLoginfo,loginfo,loginfo.Name() = Translations::InterfaceDataset_ShiftPlanPPPSPush_Name() ,loginfo.InterfaceDateTime() );
+    if( not isnull( interfaceLoginfo )){
+      if( not interfaceLoginfo.IsShow() ){
+        interfaceLoginfo.Delete();
+      }else{
+        interfaceLoginfo.Last( false );
+      }
+    }
+    
+    interfaceLoginfo := interfaceDataset.InterfaceLoginfo( relnew,
+                                                           ExecuteUser := executor,
+                                                           Name := Translations::InterfaceDataset_ShiftPlanPPPSPush_Name(),
+                                                           InterfaceDateTime := now,
+                                                           Last := true,
+                                                           Message := '鐝璁″垝锛圥PA+IDS锛夋暟鎹帹閫�' );
+    
+    dispatchShiftPlans := selectset( interfaceLoginfo,DispatchShiftPlan,dispatchShiftPlan,true );
     dispatchShiftPlanIndexTree := NamedValueTree::Create();
     for( i := 0 ; i < dispatchShiftPlans.Size() ; i++){
       dispatchShiftPlan := dispatchShiftPlans.Element( i );
@@ -41,21 +56,20 @@
          dispatchShiftPlan := dispatchShiftPlans.Element( dispatchShiftPlanIndex.GetValueAsNumber() );
          dispatchShiftPlan.Tips( shiftPlan.Remark() );
          dispatchShiftPlan.VersionName( macroPlanName );
-         dispatchShiftPlan.VersionFlag( versionFlag );
          dispatchShiftPlan.InterfaceTime( now );
        }else{
-         owner.DispatchShiftPlan( relnew,ID := OS:: GenerateGUIDAsString(),
-                                  ProductLine := productLine,
-                                  FactoryName := factory.ID(),
+         interfaceLoginfo.DispatchShiftPlan( relnew,ID := OS:: GenerateGUIDAsString(),
+                                             ProductLine := productLine,
+                                             FactoryName := factory.ID(),
+                                             ShiftQty := shiftPlan.Outcome(),
                                   
-                                  ShiftDate := shiftDate,
-                                  Tips := shiftPlan.Remark(),
-                                  VersionName := macroPlanName,
-                                  VersionFlag := versionFlag,
-                                  InterfaceTime := now );
+                                             ShiftDate := shiftDate,
+                                             Tips := shiftPlan.Remark(),
+                                             VersionName := macroPlanName,
+                                             InterfaceTime := now );
        }
     }
-    
+    DispatchShiftPlan::Publish( interfaceLoginfo );
     // owner.RB_DispatchShiftPlanBroker().AsyncExecute();
   *]
 }
diff --git a/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Publish.qbl b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Publish.qbl
new file mode 100644
index 0000000..2dbe5b1
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Publish.qbl
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Publish (
+  InterfaceLoginfo loginfo
+)
+{
+  TextBody:
+  [*
+    //// 鐢勫叞楦� Jul-17-2024 (created)
+    jsonarray          := JSON::Array();
+    traverse( loginfo, DispatchShiftPlan, shiftPlan ){
+      shiftPlanjson          := JSON::Object()
+                                    .Add( "productLine", shiftPlan.ProductLine() )
+                                    .Add( "shiftDate", shiftPlan.ShiftDate().Format( 'Y-M2-D2' ) )//"2024-10-01" 
+                                    .Add( "shiftQty", shiftPlan.ShiftQty() )
+                                    .Add( "tips", shiftPlan.Tips() )
+                                    .Add( "versionName", shiftPlan.VersionName() )
+                                    .Add( "factoryName", shiftPlan.FactoryName() )
+                                    .Add( "fac", shiftPlan.Fac() )
+                                    .Add( "interfaceTime", shiftPlan.InterfaceTime().Format( 'Y-M2-D2 H:m:s' ) )/*"2024-10-01 12:00:00" )*/
+                                    .Build();
+      jsonarray.Add( shiftPlanjson );
+    }
+    loginfo.RequestBody( jsonarray.Build().AsString() );
+    info( loginfo.RequestBody() );
+    data     := InterfaceLoginfo::CallInterfaceForDataCenter( loginfo.InterfaceDataset(), loginfo );
+    info( '----------------', data.AsString() );
+  *]
+}
diff --git a/_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl b/_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl
index 668d9a5..27c99d0 100644
--- a/_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl
+++ b/_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl
@@ -21,6 +21,7 @@
     //  OfflinePlanArchiveVersion::RefreshData( this, macroplan, archive );
     }
     if( isshiftplan ){//鐝璁″垝
+      DispatchShiftPlan::Dispatch(this, macroplan,executor );
     //  CustomerDemandIDS::GenerateData( this, recyclebin, archive );
     }
     if( isassembleonlineplan ){//瑁呴厤涓婄嚎璁″垝

--
Gitblit v1.9.3