From a3503a8a1304bc6f2fac3d68e8546244f9afd87c Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期三, 13 九月 2023 13:32:16 +0800
Subject: [PATCH] 面板拉料

---
 _Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/QuintiqEndpoint_QuintiqEndpoint.qbl                         |    8 ++
 _Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/_ROOT_IntegratorConfig_PanelMaterialRestServer.qbl          |    6 ++
 _Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_PanelFunctionButtons_ButtonSend_OnClick.def              |   24 ++++++++
 _Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperRequest.qbl             |    8 ++
 _Main/BL/ConfigTemplates.properties                                                                                             |    4 +
 _Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperReponse#1.qbl           |    8 ++
 _Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/RestEndpoint_PanelMaterialRestEndpoint.qbl                  |   10 +++
 _Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Component_PanelFunctionButtons.def                                |   11 +++
 _Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/MessageEnhancerProcessor_MessageHeaderEnhancerProcessor.qbl |   25 ++++++++
 _Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl                                                                 |   21 +++++++
 _Main/BL/Type_GlobalDTOTable/StaticMethod_ReceivingPanelMaterials.qbl                                                           |   13 ++++
 _Main/BL/Type_PanelMaterial/StaticMethod_Send.qbl                                                                               |   36 ++++++++++++
 12 files changed, 174 insertions(+), 0 deletions(-)

diff --git a/_Main/BL/ConfigTemplates.properties b/_Main/BL/ConfigTemplates.properties
index aeac723..d39c798 100644
--- a/_Main/BL/ConfigTemplates.properties
+++ b/_Main/BL/ConfigTemplates.properties
@@ -115,7 +115,11 @@
 domainmodel.historicaltransactioncontrol=template:domainmodel.historicaltransactioncontrol
 domainmodel.httphandlergroupdefinition.quantus=template:domainmodel.httphandlergroupdefinition
 domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint=template:domainmodel.integratorconfig.dsendpoint
+domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
+domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
 domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver=template:domainmodel.integratorconfig.restendpoint
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_panelmaterialrestendpoint=template:domainmodel.integratorconfig.restendpoint
 domainmodel.mdsstoragedefinitionmanager=template:domainmodel.mdsstoragedefinitionmanager
 domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients=template:domainmodel.soapclientinterfacedefinition
 domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces=template:domainmodel.soapclientinterfacedefinition
diff --git "a/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperReponse\0431.qbl" "b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperReponse\0431.qbl"
new file mode 100644
index 0000000..bc0047d
--- /dev/null
+++ "b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperReponse\0431.qbl"
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+ContentMapperProcessor ContentMapperReponse
+{
+  PosX: 305
+  PosY: 450
+  ReplyChannelOutputs: QuintiqEndpoint
+}
diff --git a/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperRequest.qbl b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperRequest.qbl
new file mode 100644
index 0000000..68694b3
--- /dev/null
+++ b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperRequest.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+ContentMapperProcessor ContentMapperRequest
+{
+  PosX: 405
+  PosY: 200
+  RequestChannelInputs: QuintiqEndpoint
+}
diff --git a/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/MessageEnhancerProcessor_MessageHeaderEnhancerProcessor.qbl b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/MessageEnhancerProcessor_MessageHeaderEnhancerProcessor.qbl
new file mode 100644
index 0000000..28845d0
--- /dev/null
+++ b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/MessageEnhancerProcessor_MessageHeaderEnhancerProcessor.qbl
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: #root
+MessageEnhancerProcessor MessageHeaderEnhancerProcessor
+{
+  PosX: 205
+  PosY: 200
+  RequestChannelInputs: ContentMapperRequest
+  MessageEnhancerSet
+  {
+    Property: '_QI.IsRequest'
+    Type: 'String'
+  }
+  MessageEnhancerSet
+  {
+    Property: '_QI.Method'
+    Type: 'String'
+    Value: 'ReceivingPanelMaterials'
+  }
+  MessageEnhancerSet
+  {
+    Property: '_QI.Type'
+    Type: 'String'
+    Value: 'GlobalOTDTable'
+  }
+}
diff --git a/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/QuintiqEndpoint_QuintiqEndpoint.qbl b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/QuintiqEndpoint_QuintiqEndpoint.qbl
new file mode 100644
index 0000000..eaf832c
--- /dev/null
+++ b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/QuintiqEndpoint_QuintiqEndpoint.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+QuintiqEndpoint QuintiqEndpoint
+{
+  PosX: 555
+  PosY: 300
+  SettingsEngineLink: 'domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint'
+}
diff --git a/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/RestEndpoint_PanelMaterialRestEndpoint.qbl b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/RestEndpoint_PanelMaterialRestEndpoint.qbl
new file mode 100644
index 0000000..f771e1a
--- /dev/null
+++ b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/RestEndpoint_PanelMaterialRestEndpoint.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+RestEndpoint PanelMaterialRestEndpoint
+{
+  PosX: 55
+  PosY: 300
+  ReplyChannelOutputs: ContentMapperReponse
+  RequestChannelInputs: MessageHeaderEnhancerProcessor
+  SettingsEngineLink: 'domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_panelmaterialrestendpoint'
+}
diff --git a/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/_ROOT_IntegratorConfig_PanelMaterialRestServer.qbl b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/_ROOT_IntegratorConfig_PanelMaterialRestServer.qbl
new file mode 100644
index 0000000..b91eb27
--- /dev/null
+++ b/_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/_ROOT_IntegratorConfig_PanelMaterialRestServer.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#root
+#parent: #root
+IntegratorConfig PanelMaterialRestServer
+{
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl b/_Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl
new file mode 100644
index 0000000..cf331b0
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: #root
+Method ReceivingPanelMaterials (
+  NamedValueTree requestnvt
+) as stream[NamedValueTree]
+{
+  TextBody:
+  [*
+    info( requestnvt.ToString() );
+    
+    logfile( "--------------------------------------1------------------------------------------------" );
+    body := LibInt_MessageAccessor::GetBodyValueAsString( requestnvt );
+    rep := LibInt_MessageAccessor::CreateEmptyMessage();
+    LibInt_MessageAccessor::SetBodyValueAsString( rep, body );
+    logfile( "--------------------------------------2------------------------------------------------" );
+    info( rep.ToString() );
+    
+    
+    return emit( rep );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/StaticMethod_ReceivingPanelMaterials.qbl b/_Main/BL/Type_GlobalDTOTable/StaticMethod_ReceivingPanelMaterials.qbl
new file mode 100644
index 0000000..ad3eacc
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/StaticMethod_ReceivingPanelMaterials.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ReceivingPanelMaterials (
+  NamedValueTree requestnvt
+) as stream[NamedValueTree]
+{
+  TextBody:
+  [*
+    MDSGlobalOTDTable::Find( DatasetFindOptions::Construct("GlobalOTDTable")) -> ( c ) {
+      return c.ReceivingPanelMaterials( requestnvt );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PanelMaterial/StaticMethod_Send.qbl b/_Main/BL/Type_PanelMaterial/StaticMethod_Send.qbl
new file mode 100644
index 0000000..620a059
--- /dev/null
+++ b/_Main/BL/Type_PanelMaterial/StaticMethod_Send.qbl
@@ -0,0 +1,36 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Send (
+  MacroPlan macroPlan,
+  Scenario scenario,
+  String businessType
+)
+{
+  TextBody:
+  [*
+    info( "鐗堟湰鍙凤細", scenario.Name(), "    浜嬩笟閮細", businessType );
+    
+    jsonBuilder := JSON::Object();
+    
+    jsonBuilder.Add( "releaseDate", Date::ActualDate().Format( "Y-M2-D2" ) );
+    jsonBuilder.Add( "businessType", businessType );
+    jsonBuilder.Add( "scenarioName", scenario.Name() );
+    
+    jsonBuilderPanelMaterials := JSON::Array();
+    traverse ( macroPlan, PanelMaterial, pm, true ) {
+      jsonBuilderPanelMaterial := JSON::Object();
+      
+      jsonBuilderPanelMaterial.Add( "productID", pm.PanelModel() );
+      jsonBuilderPanelMaterial.Add( "productDescription", pm.MaterialDescription() );
+      jsonBuilderPanelMaterial.Add( "startDate", pm.StartDate().Format( "Y-M2-D2" ) );
+      jsonBuilderPanelMaterial.Add( "quantity", pm.DemandQuantity() );
+      
+      jsonBuilderPanelMaterials.Add( jsonBuilderPanelMaterial );
+    }
+    jsonBuilder.Add( "panelMaterials", jsonBuilderPanelMaterials );
+    
+    json := jsonBuilder.Build();
+    
+    info( json.AsPrettyString() );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Component_PanelFunctionButtons.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Component_PanelFunctionButtons.def
index fd349be..9d84240 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Component_PanelFunctionButtons.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Component_PanelFunctionButtons.def
@@ -27,6 +27,17 @@
         Taborder: 1
       ]
     }
+    Component DropDownStringListBusinessType
+    {
+      #keys: '[414702.0.170431848]'
+      BaseType: 'WebDropDownStringList'
+      Properties:
+      [
+        Label: '浜嬩笟閮ㄩ�夋嫨'
+        Strings: '澶╁崕;涓撴樉;IT;杞﹁浇;TM17;TM18;杩愬姩鍋ュ悍;姹借溅鐢靛瓙'
+        Taborder: 2
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_PanelFunctionButtons_ButtonSend_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_PanelFunctionButtons_ButtonSend_OnClick.def
new file mode 100644
index 0000000..acdfa4f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_PanelFunctionButtons_ButtonSend_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: PanelFunctionButtons/ButtonSend
+Response OnClick () id:Response_PanelFunctionButtons_ButtonSend_OnClick
+{
+  #keys: '[414702.0.168500044]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan ) and not isnull( DataHolderActiveScenario.Data() );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      scenario := DataHolderActiveScenario.Data();
+      
+      PanelMaterial::Send( MacroPlan, scenario, DropDownStringListBusinessType.Text() );
+      
+      WebMessageBox::Success( "鍙戦�佹垚鍔燂紒", true );
+    *]
+    GroupServerCalls: false
+  }
+}

--
Gitblit v1.9.3